python - 为什么python中没有list.clear()方法?

标签 python list

灵感来自 this question.

为什么python中没有list.clear()方法?我在这里发现了几个问题,说正确的方法是以下之一,但没有人说为什么不只是一种方法。

del lst[:]
lst[:] = []

虽然它可能违背“python 的禅宗”,有不止一种做某事的方式,但对我来说,有一个“list.clear()”方法似乎更明显。它也符合 dicts 和 sets,两者都有 .clear()。

我在 python-dev 和 python-ideas 上看到了一些关于此的帖子,但没有得出明确的答案(参见 here (2006) 和 here (2009))。圭多有考虑过吗?这只是过去 4-5 年尚未解决的争论点吗?

更新: list.clear() 在 3.3 中添加到 python - see here

最佳答案

在您链接的线程中 Raymond Hettinger pretty much sums up the pros and cons添加该方法。在语言设计方面,保守是非常重要的。例如见 "every feature starts with -100 points" C# 团队的原则。通过随意添加特性,你不会得到像 Python 那样干净的东西。看看一些更流行的脚本语言,看看它会把你带到哪里。

我猜 .clear() 方法只是从未跨越隐含的 -100 分规则成为值得添加到核心语言的东西。尽管考虑到方法名已经用于同等目的,而且很难找到替代方法,但它可能离它并不遥远。

关于python - 为什么python中没有list.clear()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1401933/

相关文章:

python - MySQL 1045 异常

java - 转换为List后如何迭代方法中的元素?

list - Haskell,à la LYAH中差异列表上的头部和尾部

python - 计算 2 个列表之间的重复项

linux - unix 脚本计算斜线 16 个子网的列表

python - 使用 C API 将命令行参数传递给 python 2.7.6 包应用程序

python - 可以让 setuptools extras_require 覆盖 install_requires 的要求吗?

python - 如何将 Ajax 与 Django 应用程序集成?

python - Python中根据子字符串删除重复项

python - 显示没有逗号,括号等的python 2d列表,每行后换行