繁体   English   中英

如何将变量的值存储在列表而不是引用中?

[英]How do I store a variable's value in a list instead of a reference?

a = ['a']
b = ['b']
c = a
ab = [a,b]

print(c)
print(ab)

a[0] = 'c'

print(c)
print(ab)

返回:

['a']              
[['a'], ['b']]
['c']
[['c'], ['b']]

我希望c列表保持原样即['a']。 但是在我更改了列表中的元素后,它发生了变化。 为什么会发生这种情况,如果有的话,我可以避免它。

您需要复制列表a并将其分配给c 现在你只是将参考分配给ac ,这就是为什么当你修改a你也修改c 有多种方法可以复制a ,我觉得最容易阅读使用列表构造函数:

c = list(a)

Alek或mtitan8的解决方案可能是最方便的。 要非常明确,您可以import copy然后使用c = copy.copy(a)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM