Python:;嵌套列表分配无法正常工作
Python的Thr版本是2.6.6Python:;嵌套列表分配无法正常工作,python,list,variable-assignment,Python,List,Variable Assignment,Python的Thr版本是2.6.6 n = 0 list1=["","",""] list2=[] for ... : # a b c changes every loop list1[0]=a list1[1]=b list1[2]=c list2[n].append(list1) n += 1 for j in range(n): print list2[j] 问题是列表2中的每一项都是最后一个循环的值,为什么? 它似乎是
n = 0
list1=["","",""]
list2=[]
for ... :
# a b c changes every loop
list1[0]=a
list1[1]=b
list1[2]=c
list2[n].append(list1)
n += 1
for j in range(n):
print list2[j]
问题是列表2中的每一项都是最后一个循环的值,为什么?
它似乎是由浅拷贝引起的,但我不知道如何修复它。您需要附加一份列表1的拷贝:
list2.append(list1[:])
否则,附加的是对同一个列表的引用。您需要附加一份list1
:
list2.append(list1[:])
否则,附加的是对同一个列表的引用。您需要附加一份list1
:
list2.append(list1[:])
否则,附加的是对同一个列表的引用。您需要附加一份list1
:
list2.append(list1[:])
否则,附加的是对同一个列表的引用。是否list2[n]。附加([a,b,c])
对您有效?是否list2[n]。附加([a,b,c])
对您有效?是否list2[n])
对您有效?是否list2[n]。附加([a,b,c])
对您有效?