那是因为
ele
仍在下一次迭代中引用同一词典。你需要创建一个副本。一种方法是把它抛给一条格言:
for ele in oldlist:
for age in ages.split(','):
ele['age'] = age
newlist.append(dict(ele))
或者更好的是,不要使用
oldlist
,只需使用
埃勒
自身进行初始化:
ele = {'name':'cheng'}
for age in ages.split(','):
ele['age'] = age
newlist.append(ele)
输出:
[{'name': 'cheng', 'age': '18'}, {'name': 'cheng', 'age': '20'}]