2013-11-27 104 views
2

有2列表檢查列表中的項目是否在另一個列表中存在或不蟒蛇

a= [1,2,3] 
b = [1,2,3] 

現在我要檢查從a一個元素是否在b存在或不蟒蛇一個班輪

我可以在a上使用循環,然後檢查它是否存在於b中。但我想要一些pythonic方式(單線)。

+0

一個襯墊並不總是意味着它是Python的。 –

+0

'b'中的任何(a)' –

+0

同意。但我知道我可以將它轉換爲python中的單線程,而不是使用循環。 – PythonEnthusiast

回答

2

bool(set(a)&set(b))ab轉換成集合,然後在其上應用intersection operator&)。然後將bool應用於結果集合,如果集合爲空(無公共元素),則返回False,否則返回True(集合非空且具有公共元素)。

沒有使用套:any(True for x in a if x in b)any()如果任何一個元素爲真,則返回True,否則返回False。

+0

它是做什麼的?請解釋。 – PythonEnthusiast

+0

@ user1162512更新了它;我在添加信息時看到了您的評論。 –

+0

我想從存在於'b'中的'a'獲取該元素。我怎樣才能做到這一點? – PythonEnthusiast

2

我認爲你應該使用套。這是你可以做的方式:

def check_element(a, b): 
    return not set(a).isdisjoint(b) 
0
len(set(a+b)) < len(set(a)) + len(set(b)) 
相關問題