我在程序中遇到一些变量问题。我需要保留列表的两个或三个版本,这些版本在循环评估期间会更改。例如:
x=[0]
y=[0]
while True:
y=x
x[0]+=1
print (y,x)
input()
当我按Enter它显示时,[1] [1]; [2] [2]; [3] [3]...
但是我需要将列表的先前状态保留在变量中:[0] [1]; [1] [2]; [2] [3] ...
代码应该是什么?
您需要复制值而不是引用,您可以执行以下操作:
y=x[:]
代替
y = x
您还可以使用副本库:
import copy
new_list = copy.copy(old_list)
如果列表包含对象,并且您也想复制它们,请使用常规copy.deepcopy()
new_list = copy.deepcopy(old_list)
在python 3.x中,您可以执行以下操作:
newlist = old_list.copy()
您也可以在丑陋模式下完成它:)
new_list = list(''.join(my_list))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句