使用 for 循环 (python) 更改列表中的值

Kai*_*036 6 python for-loop list python-3.x

我目前有一些代码如下:

letters = {
10 : "A",
11 : "B",
12 : "C",
13 : "D",
14 : "E",
15 : "F"
}
vallist = [rd1, rd2, gd1, gd2, bd1, bd2]
for i in vallist:
    if i >= 10:
        i = letters[i]
Run Code Online (Sandbox Code Playgroud)

我想要发生的是 for 循环来迭代vallist并用相应的字母替换大于 10 的任何值。但是,我当前的代码只是更改,i而不是列表中的原始值。例如,如果rd1设置为 15,则代码运行并i设置为"F",但rd1不会更改为"F",而是保持为 15。我该如何解决这个问题?

blh*_*ing 11

对于for循环的每次迭代,变量i只分配了 中项目值的副本vallist,因此对 所做的更改i不会反映在 中i

您应该更新ivia 索引的项目,您可以使用该enumerate函数生成该索引:

for index, value in enumerate(vallist):
    if value >= 10:
        vallist[index] = letters[value]
Run Code Online (Sandbox Code Playgroud)