第一个代码块:

print('*'25+'外星人入侵'+''*25) aliens = [ ] #定义一个空列表 for i in range(0,8,1): #生成8个外星人 dictionary8 = {'color': 'green', 'points': 5, "speed": "10"} #注意这里,字典放在for循环内 aliens.append(dictionary8)

现在,aliens列表里面有8个特征一样的外星人了

for alien in aliens[0:3]: #只改变前三个外星人的特征 if alien['color'] == 'green': alien['color'] = 'red' alien['points'] = '6' alien['speed'] = '20' for aliens1 in aliens: #输出aliens列表中的外星人 print(aliens1)

运行结果如下:

*********************外星人入侵********************* {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'} {'color': 'green', 'points': 5, 'speed': '10'}

运行正常无误

现在,轻微修改一下第一个代码块,将字典放到空列表下面,也就是放到for循环的上面:

print('*'25+'外星人入侵'+''*25) aliens = [ ] dictionary8 = {'color': 'green', 'points': 5, "speed": "10"} #注意这里,字典放到了外面 for i in range(0,8,1): aliens.append(dictionary8) for alien in aliens[0:3]: #只修改前三个 if alien['color'] == 'green': alien['color'] = 'red' alien['points'] = '6' alien['speed'] = '20' for aliens1 in aliens: print(aliens1)

运行结果如下:

*********************外星人入侵********************* {'color': 'red', 'points': '6', 'speed': '20'} #原本只改前三个外星人,但是所有的外星人都被改了 {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'} {'color': 'red', 'points': '6', 'speed': '20'}