我一直在尝试这个。
>>> x = [4,5]
>>> y = x.append(7)
>>> print y
None
>>>print x
[4, 5, 7]
这怎么可能?
当我尝试将值存储在新列表中时 y
并打印它时,结果为 None
并且它还更改了当前列表 `x。
在 Python 中还有其他方法可以做到这一点吗?
原文由 user5975918 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直在尝试这个。
>>> x = [4,5]
>>> y = x.append(7)
>>> print y
None
>>>print x
[4, 5, 7]
这怎么可能?
当我尝试将值存储在新列表中时 y
并打印它时,结果为 None
并且它还更改了当前列表 `x。
在 Python 中还有其他方法可以做到这一点吗?
原文由 user5975918 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是可能的,因为 x.append()
是列表的一种方法 x
改变列表。不需要返回值,因为所有方法需要做的就是执行副作用。因此,它返回 None
,您将其分配给变量 y
。
我认为您想创建 x
的副本并附加到该副本:
y = x[:]
y.append(7)
或分配 y
实际创建新列表的列表操作的结果:
y = x + [7]
原文由 Thomas Lotze 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
因为函数
append()
修改列表并返回None
。做您想做的事情的最佳实践之一是使用
+
运算符。让我们举个例子:
+
运算符创建一个新列表并保持原始列表不变。