2017-05-19 169 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}' –

相关问题