python - 为什么允许列表自行追加?

标签 python list recursion

我偶然注意到,在 Python 中你可以编写如下内容:


l = list()
for i in range(5):
  l.append(l)

如果我打印出 l 是什么,它看起来像这样:

[[...], [...], [...], [...], [...]]

现在我可以做这样的事情:

l[0][0][0][0]...[0]

这将返回完全相同的列表。

我的 linter 没有检测到我在代码中犯的错误,因此可能很难发现。所以我的问题是:为什么允许列表自行追加?你能用它做什么?

如果它没有用,它可能应该被禁止。

最佳答案

您不允许列表中存在列表的标准是它没有用。但很难证明这不是真的。也许还没有人知道它的用途,但这并不意味着将来有人不会。与此同时,在解释将对象添加到列表中存在哪些异常以及实现这些异常方面,该语言都会增加成本。

如果您可以证明允许向自身添加列表是有害的,那么您就有更有力的理由对语言进行更改。但“我不小心输入了错误的变量名”并不能成为造成伤害的有力论据。

关于python - 为什么允许列表自行追加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843784/

相关文章:

list - 将文件读入 elisp 中的对列表

python - 尽管有种子,Numpy 仍产生不同的随机数

python - 在 Python 中使用字典调用带参数的函数

c# - C# 列表中的不相交联合

Python 列表中带有 for 循环的 IN 和 OR 运算符

algorithm - 为什么在方阵乘法的递归中输入大小除以 2 而不是 4?

python - 使用记忆化的递归算法

c++ - 二叉树指针错误

python - Django 休息框架 : Derived model serializer fields

Python - 从文件中读取先前的 'list' 变量