如何在不使用“append()”的情况下向列表添加新值,然后将该值存储在新创建的列表中?

新手上路,请多包涵

我一直在尝试这个。

 >>> 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 许可协议

阅读 512
2 个回答

因为函数 append() 修改列表并返回 None

做您想做的事情的最佳实践之一是使用 + 运算符。

让我们举个例子:

 >>> x = [4, 5]
>>> y = x + [7]
>>> x
[4, 5]
>>> y
[4, 5, 7]

+ 运算符创建一个新列表并保持原始列表不变。

原文由 The Room 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是可能的,因为 x.append() 是列表的一种方法 x 改变列表。不需要返回值,因为所有方法需要做的就是执行副作用。因此,它返回 None ,您将其分配给变量 y

我认为您想创建 x 的副本并附加到该副本:

 y = x[:]
y.append(7)

或分配 y 实际创建新列表的列表操作的结果:

 y = x + [7]

原文由 Thomas Lotze 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题