You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中for item in list遍历无法修改列表元素的原因咨询

为什么第一段遍历列表的代码无法修改元素?

先看你写的两段代码:

第一段(无法修改列表):

board = ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b']
for item in board:
    if item == 'b':
        item = 'a'
print(board)

第二段(能成功修改):

board = ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b']
for i in range(0, len(board)):
    if board[i] == 'b':
        board[i] = 'a'
print(board)

核心原因:临时副本 vs 直接访问原元素

  • 第一段代码里,for item in board 循环时,item是列表中每个元素的临时副本。你执行item = 'a',只是把这个临时变量的值改成了'a',和原列表里的元素没有任何关系,原列表自然不会变。
  • 第二段用索引遍历的方式,board[i]是直接定位到列表第i个位置的原元素,修改board[i]就是直接操作列表里的对应位置,所以能成功把所有'b'替换成'a'。

简单说,第一段改的是“替身”,第二段改的是“本尊”,结果自然不一样。

内容的提问来源于stack exchange,提问作者Yhomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:20:30