不能修改Python循环中的列表元素

不能修改Python循环中的列表元素

在Python中遍历列表时,我无法在没有列表理解的情况下修改元素。供参考:

li = ["spam", "eggs"]for i in li:
    i = "foo"li["spam", "eggs"]li = ["foo" for i in li]li 
["foo", "foo"]

那么,为什么我不能通过Python中的循环来修改元素呢?我肯定错过了什么,但我不知道是什么。我相信这是一个重复,但我找不到一个问题,如果有联系,那就足够了。提前谢谢!


GCT1015
浏览 1046回答 3
3回答

撒科打诨

因为这条路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'

FFIVE

我可以在循环时修改列表:lst = range(10)  // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for i, elem in enumerate(lst):     lst[i] = 0   // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python