首页 > 解决方案 > 在嵌套的 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)

标签: python

解决方案


当您分配时,NEWstate = alist您实际上分配了参考。两个变量都引用内存中的同一个列表。如果要创建列表的副本,请使用NEWstate = alist[:]


推荐阅读