Изменить значение переменной для каждой переменной в списке - PullRequest
0 голосов
/ 25 марта 2019

Предположим, у нас есть список variables с переменными [a, b, c]. Код должен проверять, является ли значение переменной типовой строкой с текстом "None". Значение переменной должно быть обновлено до "", если оно истинно. Используя цикл 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 ]

3 голосов
/ 25 марта 2019

Все, что вы делаете, это перезаписываете значение локальной переменной variable, а не элемента в variables.Вам нужно будет перебрать индексы и присвоить variables[i] напрямую:

for i, value in enumerate(variables):
    if value == "None":
        variables[i] = ""
0 голосов
/ 25 марта 2019

Если я воспроизведу ваш пример, переменная «переменная» действительно обновится.Однако в списке переменных «переменных» не будет.Потому что вы не говорите, чтобы это изменилось.

Есть несколько способов изменить это.Если это небольшой список, я бы просто создал новый список

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

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...