python 列表解析

new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens = [new_alien for new_alien_number in range(30)]
print(aliens)


print('\n')
for alien in aliens[0:3]:
    if alien['color'] == 'green':
        alien['color'] = 'yellow'
        alien['points'] = 10
        alien['speed'] = 'medium'


print('\n')
for alien in aliens[0:5]:
    print(alien)

为什么跑出来结果是所有的外星人都变成黄色了

import copy

new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens = [copy.deepcopy(new_alien) for new_alien_number in range(30)]
print(aliens)

用深拷贝,不理解可以看我的博文:https://blog.csdn.net/qq_30527579/article/details/116121334?spm=1001.2014.3001.5501

我不是在上个问题回复了吗。。。你这个第二行的问题,这么写是浅拷贝,改一个去其他全部变了,详细的去看看上个问题的回答。