我遇到了一個問題,有人想生成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
我可以通過這個list解析得到的結果相同:
print [int(sum(x)==0) for x in zip(L1, L2)]
我想知道是否有更直接地表達列表理解中的初始代碼塊的if/else條件的方式。我可以理解這個問題可能被認爲是多餘的,因爲if/else條件自然是組成的,但發佈的替代方案可能對我非常有用。