alien_0 = {'color': 'green', 'points': 5} alien_1 = {'color': 'yellow', 'points': 10} alien_2 = {'color': 'red', 'points':15} # 创建一个空列表用于存储外星人 aliens = [] # 创建30个绿色的外星人 for alien in range(30): new_aliens = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_aliens) # 改变前三个外星人的数据 for alien in aliens[:3]: if alien['green'] == 'green': (问题所在处:为什么改变alien的值会改变aliens列表的值) alien['color'] = 'yellow' alien['points'] = 10 alien['speed'] = 'slow' # 打印前5个星人 for alien in aliens[:5]: print(alien) # 显示创建了多少个外星人 print(f"外星人的个数:{len(aliens)}")
为什么改变for循环中接受数据的变量的值可以影响到被遍历列表的值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-04-17 23:22关注
正常就应该是这样的,你的循环本来就是在改变aliens列表的值呀,alien是列表的其中一个元素。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报