This question already has answers here:
How to modify list entries during for loop?
(8个答案)
3年前关闭。
在Python中遍历列表时,如果没有列表理解,就无法修改元素。
以供参考:
那么,为什么不能通过Python中的循环修改元素?肯定有一些我想念的东西,但是我不知道是什么。我确定这是重复的,但我找不到与此相关的问题,如果有链接,那就绰绰有余了。先感谢您!
因此,如果将任何内容分配给
解决方案是您所建议的,或者遍历索引:
或使用
(8个答案)
3年前关闭。
在Python中遍历列表时,如果没有列表理解,就无法修改元素。
以供参考:
li = ["spam", "eggs"]
for i in li:
i = "foo"
li
["spam", "eggs"]
li = ["foo" for i in li]
li
["foo", "foo"]
那么,为什么不能通过Python中的循环修改元素?肯定有一些我想念的东西,但是我不知道是什么。我确定这是重复的,但我找不到与此相关的问题,如果有链接,那就绰绰有余了。先感谢您!
最佳答案
因为for i in li
的工作方式是这样的:
for idx in range(len(li)):
i = li[idx]
i = 'foo'
因此,如果将任何内容分配给
i
,则不会影响li[idx]
。解决方案是您所建议的,或者遍历索引:
for idx in range(len(li)):
li[idx] = 'foo'
或使用
enumerate
:for idx, item in enumerate(li):
li[idx] = 'foo'
10-08 14:41