Я столкнулся с вопросом: кто-то хотел создать list3 = [1, 0, 1, 0, 0]
для list1 = [0, 1, 0, 0, 1
] и list2 = [0, 1, 0, 1, 1]
.Альтернативное понимание списка
Если бы zip(list1, list2)
, то только zip(0, 0)
будет генерировать 1
для list3
.
Я хочу выразить последующий код списка понимание:
L3 = []
for x in zip(L1, L2):
if sum(x) == 0:
L3.append(1)
else:
L3.append(0)
print L3
я могу получить тот же результат, используя этот список понимание:
print [int(sum(x)==0) for x in zip(L1, L2)]
Я хотел бы знать, если есть способ более точно выразить условие if/else исходного блока кода в понимании списка. Я могу понять, что этот вопрос можно считать излишним, поскольку условие if/else, естественно, состоит, но опубликованные альтернативы могут быть очень полезны для меня.