2015-07-19 112 views
0

,比如我有兩個列表:如何在python中總結兩個布爾值列表?

a=[True,False,True,False] 
b=[False,True,False,True] 

我想回到這個:

c=[a[0] and b[0],a[1] and b[1],a[2] and b[2],a[3] and b[3]] 

,所以我將有

c=[False,False,False,False] 

我知道我能做到循環使用 '對於' ,但這是最簡單的方法嗎? 我試過 a和b 但它返回我錯誤的答案。

回答

1

List-Comprehensionzip()

>>> a=[True,False,True,False] 
>>> b=[False,True,False,True] 
>>> [i and j for i, j in zip(a,b)] 
[False, False, False, False] 

zip()函數有兩個(或更多)列表(或迭代),並採取從每個第一個,並將它們一起,並且隨後轉到第二,並將它們一起等(如拉鍊)

對於長度不一致的列表,您需要itertools包中的izip_longest()。它將繼續壓縮並將關鍵字fillvalue設置爲默認值(默認值爲None)。

+0

謝謝,它工作正常! –