Python在列表中查找新元素

时间:2016-07-13 08:56:37

标签: python python-2.7

我想在liste2找到新单词。

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 [all] [0],但我不知道该怎么做。

4 个答案:

答案 0 :(得分:1)

检查alarms

[0] "windows"
[1] "dual sim"
[2] "32 gb"
[3] "Intel i5"

答案 1 :(得分: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']

答案 2 :(得分:0)

In [8]: dict1 = dict(liste1)

In [9]: dict2 = dict(liste2)

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

答案 3 :(得分:0)

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

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

输出:

nani
>>>