我想更改字典中的一个元素,但如果我将new_alien
放在循环外面,那么字典中的所有元素都会被更改。为什么会这样?
#ALL aliens get changed when I put put the dictionary up here
new_alien = {'colour': 'green'}
aliens=[]
for alien_number in range(3):
#if i put new_alien here only one alien dictionary gets changed in the for loop (correct code)
#new_alien = {'colour': 'green'}
aliens.append(new_alien)
print(aliens)
for alien in aliens[0:1]:
if (alien['colour'] == 'green'):
alien['colour'] = 'yellow'
print(aliens[0:2])
如果new_alien
在循环外部,则输出:
[{'colour': 'green'}, {'colour': 'green'}, {'colour': 'green'}]
[{'colour': 'yellow'}, {'colour': 'yellow'}]
如果new_alien
在循环内,输出结果:
[{'colour': 'green'}, {'colour': 'green'}, {'colour': 'green'}]
[{'colour': 'yellow'}, {'colour': 'green'}]
请注意,在循环之外,所有外星词典:颜色都被改为黄色。如有疑问,请解释。谢谢!