我有如下代码,当我打印 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 许可协议
我有如下代码,当我打印 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 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
在 python 中,变量名是对基础变量的 _引用_。
list1
和list2
都引用相同的列表,因此当您将9
插入该列表时,您会看到两个列表中的变化如果您希望它们不同,则需要进行显式复制(使用copy
模块、切片符号list2 = list1[:]
或其他方法)。