2017-05-19 225 views
-3

我有兩個列表: a = [1,2] b = [1,2,1,1,1,2,2] 如何將列表a的元素與列表中的完全相同的元素進行匹配b只有一次。 我試過代碼:如何將一個列表的元素與另一個python列表中的其他元素進行匹配?

for unit in a: 
    for nit in b: 
     if unit==nit: 
      print(unit,nit) 

但它匹配列表中的元素與所有名單B元素的類似比賽。我只需要一場比賽而不需要多場比賽。

所以我試圖刪除元素,以防止進一步的比賽,如代碼:

我試過代碼:

for unit in a: 
    for nit in b: 
     if unit==nit: 
      print(unit,nit) 
      a.remove(unit) 

但它返回的錯誤。

+6

你是什麼意思?你試圖得到什麼結果? – Barmar

+1

'set(a).intersection(b)'? – umutto

+0

瑣碎的答案:'break' – ShadowRanger

回答

0

我不知道這是否是你想要的 但這裏是我會怎麼做

a=[1,2] 
b=[1,2,1,1,1,2,2] 
for unit in a: 
    if unit in b: 
     print (unit,unit) 

我已打印單元兩次以匹配所需output.It的作品,因爲它是在同一個元素b並且我們確保在我們的條件下

0

這是您想要的嗎?

In [3]: a=[1,2] 

In [4]: b=[1,2,1,1,1,2,2] 

In [5]: a_set = set(a) 

In [6]: b_set = set(b) 

In [7]: a_set.intersection(b_set) 
Out[7]: {1, 2} 
+0

或者:'set(a)&set(b)'它會返回'{1,2}' –

相關問題