2016-03-25 110 views
5

結果應該不一樣嗎? 我不明白。python中的布爾表操作

[True,False] and [True, True] 
Out[1]: [True, True] 

[True, True] and [True,False] 
Out[2]: [True, False] 
+0

您要做什麼? – SubliemeSiem

+0

什麼?這些清單不應該是價值明智的嗎? – ForceBru

+0

[a和b代表a,b在zip(x,y)],這就是我正在嘗試做的事情。 – Tang

回答

2

不,因爲這不是and操作在python中的工作方式。首先它不分開and列表項。其次,and運算符在兩個對象之間工作,如果其中一個爲False(evaluated as False ),則返回該對象,如果兩者都爲True,則返回第二個對象。這裏有一個例子:

>>> [] and [False] 
[] 
>>> 
>>> [False] and [] 
[] 
>>> [False] and [True] 
[True] 

x and y:如果x是假的,那麼x,否則y

如果要應用在所有可以使用numpy的數組列表對邏輯運算:

>>> import numpy as np 
>>> a = np.array([True, False]) 
>>> b = np.array([True, True]) 
>>> 
>>> np.logical_and(a,b) 
array([ True, False], dtype=bool) 
>>> np.logical_and(b,a) 
array([ True, False], dtype=bool) 

1.此處由於您處理列表,空列表將被評估爲False

+1

[a和b代表a,b在zip(x,y)],謝謝,那也行得通 – Tang