Учитывая список, например.Как «еще» в понимании списка, когда условие не является логическим?
a = ["No", 1, "No"]
Я хочу, чтобы преобразовать это в новый список (или на самом деле просто переназначить список) таким образом, что каждый «Нет» преобразуется к 0, например,
[0,1,0]
Если я пытаюсь следующий список понимание:
[0 for i in a if i =="No"]
Это, очевидно, приводит список, который опускает каждый элемент, который не является «Нет»
[0,0]
Если я последовать примеру данные here и попробуйте:
[0 if "No" else i for i in a]
Это дает мне:
[0, 0, 0]
И я думаю, это потому, что «Нет» приравнивает к True
.
Что я не понимаю об использовании if/else в понимании списка?
Связано также: [Непоследовательный синтаксис понимания?] (Https://stackoverflow.com/q/20025280) –