2016-07-13 141 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 
>>> 
相關問題