我正在循环中创建一个名为“temp”的列表,并将其附加到一个名为“trouble”的母亲列表中。当我在循环的第二次运行中将“temp”附加到“trouble”时,“trouble”本身似乎正在发生变化。 为了清楚起见,我简化了代码,只包含了这个实例。你知道吗
award=[[['A',1],['B',1]],[['A',1],['C',1]],[['A',1],['C',1],['D',1]]]
trouble=[]
print '\n'
for n in range(len(award)-1):
temp=[]
for i in range(len(award[n])):
temp.append(award[n][i])
for i in range(len(award[n+1])):
for k in range(len(temp)):
if(temp[k][0]==award[n+1][i][0]):
temp[k][1]+=award[n+1][i][1]
break
else:
temp.append(award[n+1][i])
print 'temp', temp
trouble.append(temp)
print '\tn = ',n, '\n\ttrouble'
for i in range(len(trouble)):
print trouble[i]
print '\n'
输出如下所示:
temp [['A', 2], ['B', 1], ['C', 1]]
n = 0
trouble
[['A', 2], ['B', 1], ['C', 1]]
temp [['A', 2], ['C', 2], ['D', 1]]
n = 1
trouble
[['A', 2], ['B', 1], ['C', 2]]
[['A', 2], ['C', 2], ['D', 1]]
我不明白为什么['C',1],它(据我所说)在第一次附加之后没有被碰过,在第二次附加之后被改变了。你知道吗
任何帮助都将不胜感激。你知道吗
先谢谢你。你知道吗
阿纳加·马杜苏达南
我认为问题的根源在于:
奖励[1][1]的引用已经添加了两次麻烦,因此添加任何元素,所有值都将更改。 在将列表附加到母列表中时,应该进行深度复制。你知道吗
相关问题 更多 >
编程相关推荐