因为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'
无法在循环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'