python - 在嵌套的 for 中存储交换的新数组
问题描述
如何将这个交换后的新数组存储在嵌套中?结束循环后,这个 NEWstate 变得与给定状态 a[2,1,5,0] 完全相同。我通过交换下一个元素来生成不同的状态。需要存储那些交换的状态。
def genrState(alist):
NEW=[]
print("Current state ", alist)
i=0
for x in alist:
print("for", x, "index is ", i)
j=i
for y in alist[i+1:]:
if i < 10:
alist[i] , alist[j+1] = alist[j+1], alist[i]
print("generated", alist)
NEWstate = alist
print("NEW INSIDE", NEWstate )
alist[i] , alist[j+1] = alist[j+1], alist[i]
j=j+1`enter code here`
i=i+1
print("NEW", NEWstate )
print(alist)
a=[2,1,5,0]
genrState(a)
解决方案
当您分配时,NEWstate = alist
您实际上分配了参考。两个变量都引用内存中的同一个列表。如果要创建列表的副本,请使用NEWstate = alist[:]