为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

GCT1015 2019-06-24 17:11:09
不能修改Python循环中的列表元素在Python中遍历列表时,我无法在没有列表理解的情况下修改元素。供参考:li = ["spam", "eggs"]for i in li:     i = "foo"li["spam", "eggs"]li = ["foo" for i in li]li  ["foo", "foo"]那么,为什么我不能通过Python中的循环来修改元素呢?我肯定错过了什么,但我不知道是什么。我相信这是一个重复,但我找不到一个问题,如果有联系,那就足够了。提前谢谢!
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-06-24
?
FFIVE

TA贡献1797条经验 获得超6个赞

我可以在循环时修改列表:

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]


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 1045 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信