在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 i in li
for idx in range(len(li)): i = li[idx] i = 'foo'
所以如果你给i它分配任何东西都不会影响li[idx]。
li[idx]
解决方案是您所建议的,或者遍历索引:
for idx in range(len(li)): li[idx] = 'foo'
或使用enumerate:
enumerate
for idx, item in enumerate(li): li[idx] = 'foo'