我正在循环中创建一个名为“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] 在第一个附加实例之后(根据我)没有被触及,在第二个附加实例之后被更改。
任何帮助将不胜感激。
先感谢您。
阿纳迦马杜苏达南