假设我们有一个列表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
为什么变量不更新其值?
答案 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]
希望这会有所帮助!