浮夸~boy 2021-04-17 23:15 采纳率: 100%
浏览 89
已采纳

为什么改变for循环中接受数据的变量的值可以影响到被遍历列表的值

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)}")
  • 写回答

6条回答 默认 最新

  • 关注

    正常就应该是这样的,你的循环本来就是在改变aliens列表的值呀,alien是列表的其中一个元素。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)