2016-07-13 119 views
-2

我想查找liste2中的新单词。Python在列表中找到新元素

liste1 = [['euro2016', '99'], ['portugal', '87'], ['ronaldo', '34']] 
liste2 = [['euro2016', '90'], ['portugal', '75'], ['ronaldo', '44'], ['nani', '15']] 


l1 = len(liste1) 
l2 = len(liste2) 

for x in range(0,l2): 
    for y in range(0,l1): 
     if liste2[x][0] not in liste1[y][0]: 
      print liste2[x][0] 

,但我的代码是给的结果那样:

euro2016

euro2016

葡萄牙

葡萄牙

纳尼

纳尼

纳尼

我想我必须寻找liste1 [全部] [0],但我不知道如何给它。

+0

是什么'new'是什么意思?你的问题不清楚。 – DeepSpace

+0

你想让程序返回'nani'吗? –

回答

1

我想找到liste2新词


您可以使用列表中理解和应用filter是发生在liste2只新项目:

result = [i[0] for i in liste2 if i[0] not in (j[0] for j in liste1)] 
#       ^ filtering is done here  ^
print(result) 
# ['nani'] 
1

检查here

[i for i in liste2 if i[0] not in [j[0] for j in liste1]] 
0
In [8]: dict1 = dict(liste1) 

In [9]: dict2 = dict(liste2) 

In [10]: print(set(dict2.keys()) - set(dict1.keys())) 
set(['nani']) 
0

您可以在每个列表项中创建一组第一个元素,然后取其中的差异。它将返回这是不是在liste1在liste2项目:

l3 = set(map(lambda x:x[0],liste1)) 
l4 = set(map(lambda x: x[0],liste2)) 
print list(l4.difference(l3))[0] 

输出:

nani 
>>> 
相关问题