我遇到了一个问题,有人想生成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条件自然是组成的,但发布的替代方案可能对我非常有用。