更改列表中每个变量的变量值

时间:2019-03-25 16:17:04

标签: python python-3.x list for-loop

假设我们有一个列表variables,其中包含变量[a, b, c]。代码应检查变量值是否为带有文本"None"的字符串类型。如果为true,则变量值应更新为""。使用for循环,我会写:

a = 1
b = 2
c = 3
variables = [a, b, c]

for i in range(len(variables)):
    variables[i] = 55

print(variables)
print(a, b, c)

这将输出:

[55, 55, 55]
1 2 3

为什么变量不更新其值?

2 个答案:

答案 0 :(得分:3)

您要做的只是覆盖局部变量variable的值,而不是variables中的元素。您需要遍历索引并直接分配给variables[i]

for i, value in enumerate(variables):
    if value == "None":
        variables[i] = ""

答案 1 :(得分:0)

如果我复制您的示例,则变量“变量”的确会更新。但是,变量“变量”列表将不会。因为您没有告诉它改变。

有几种方法可以更改此设置。如果这是一个小列表,我只需创建一个新列表

variables = [1,2,3,4,"None",5,1,"foo","bar"]

new_variables = [0 if variable == "None" else variable for variable in variables]

希望这会有所帮助!