2010-03-11 47 views
2

我們有兩個列表:如何獲得包含在另外兩個列表中的元素的列表?

a=['1','2','3','4'] 
b=['2','3','4','5'] 

如何獲得與被包含在這兩個列表元素的列表:

a_and_b=['2','3','4'] 

和那些只包含在一個列表中的元素的列表,但不其他:

only_a=['1'] 
only_b=['5'] 

是的,我可以使用週期,但它是瘸子=)

回答

5

簡單地與使用的集:

>>> a=['1','2','3','4']; b=['2','3','4','5'] 
>>> a = set(a) 
>>> b = set(b) 
>>> a & b 
set(['3', '2', '4']) 
>>> a - b 
set(['1']) 
>>> b - a 
set(['5']) 
>>> 
8

如果順序並不重要

>>> a=['1','2','3','4'] 
>>> b=['2','3','4','5'] 
>>> set(a) & set(b) 
set(['3', '2', '4']) 

只有

>>> set(a).difference(b) # or set(a) - set(b) 
set(['1']) 

僅有B

>>> set(b).difference(a) # or set(b) - set(a) 
set(['5']) 
+1

你不需要投入來設置'.difference' argume NT。 – SilentGhost 2010-03-11 12:24:00

+0

是的,我們不需要,但有人可能喜歡看單詞。 :) – ghostdog74 2010-03-11 12:37:59

+0

什麼SilentGhost的意思是你可以做'set(a).difference(b)' – orip 2010-03-11 22:44:24

相關問題