gpt4 book ai didi

python - 无法在循环中修改列表元素

转载 作者:IT老高 更新时间:2023-10-28 22:08:22 26 4
gpt4 key购买 nike

在 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'

或使用枚举:

for idx, item in enumerate(li):
li[idx] = 'foo'

关于python - 无法在循环中修改列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19290762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com