2012-07-23 70 views

回答

24

使用sets

set(data1) & set(data2) 

&运营商的意思是 “给我这两个集合的交集”或者你可以使用.intersection方法:

set(data1).intersection(data2) 
+1

对,这对我来说非常合适。谢谢! – ivanhoifung 2012-07-23 14:59:03

+1

我发现.intersection本身更具可读性,但正如你所说他们做同样的事情。 – TimothyAWiseman 2012-07-23 15:02:41

+1

@ivanhoifung如果这解决了你的问题,你应该[通过点击复选标记接受这个答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)在答案旁边。它会用一些积分奖励双方,并将此问题标记为已解决。 – Levon 2012-07-23 15:18:21

-2
For a in data1: 
    for b in data2: 
     if a==b: 
     print(a) 

这是应该做的一种方式,而不是最好的办法,虽然

4
nf = [x for x in data1 if x in data2] 
nf 

将两个列表返回公用项

0
>>> [ name for name in data1 if name in data2 ] 
['name3'] 
相关问题