python中的列表赋值

新手上路,请多包涵

我有如下代码,当我打印 list1 和 list2 时,它显示相同的元素,但我在将现有 list1 分配给 list2 之后添加了 9,因此它不应在 list2 中显示 9。

 list1=[1,2,3,4]
list2=list1
list1.insert(4,9)
print(list1)
print(list2)

请清除我的疑问。

原文由 hieko 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 376
1 个回答

在 python 中,变量名是对基础变量的 _引用_。 list1list2 都引用相同的列表,因此当您将 9 插入该列表时,您会看到两个列表中的变化如果您希望它们不同,则需要进行显式复制(使用 copy 模块、切片符号 list2 = list1[:] 或其他方法)。

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

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