Условие для преобразования NoneType в строку - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть python код, я хочу преобразовать переменную NoneType в строку, поэтому я написал это условие, чтобы перехватить его, но я не могу перезаписать его. Как это можно сделать? Спасибо

int_list= ['10','3',None,'5','8']
i = 0
for l in int_list:
    if l is None:
        l == 'hello'
    print l
    i+=1

Ожидаемый результат:

10
3
hello
5
8

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Вы просто изменяете значение переменной l, которая в настоящее время содержит элемент в int_list, , а не сам список .

Вам необходимо переназначить элемент в список с новым значением, используя index (здесь i) для доступа к этому элементу в объекте списка.

Сделайте это:

int_list= ['10','3',None,'5','8']
i = 0
for i in range(len(int_list)):
    if int_list[i] is None:
        int_list[i] = 'hello'  # accessing element IN THE LIST as index/position i, reassigning it to the new value 'hello'
    i+=1
print(int_list)

Вывод:

['10', '3', 'hello', '5', '8']
1 голос
/ 25 февраля 2020

Вы используете условный тест в качестве задания. Так не пойдет. Вместо этого попробуйте:

int_list= ['10','3',None,'5','8']
i = 0
for l in int_list:
    if l is None:
        l = 'hello'
    print l
    i+=1

Короче, замените == в вашем пятом на один =. Надеюсь, это поможет.

...