Python在列表中查找新元素
我想在Python在列表中查找新元素,python,python-2.7,Python,Python 2.7,我想在list2中查找生词 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
list2
中查找生词
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]
但我的代码给出的结果如下:
欧洲2016
欧洲2016
葡萄牙
葡萄牙
罗纳尔多
罗纳尔多
纳尼
纳尼
纳尼
我想我必须搜索list1[all][0],但我不知道如何搜索。检查
我想在清单2中找到生词
您可以使用列表理解并应用只接受列表2中新项目的
过滤器:
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中不在列表1中的项目:
l3 = set(map(lambda x:x[0],liste1))
l4 = set(map(lambda x: x[0],liste2))
print list(l4.difference(l3))[0]
输出:
nani
>>>
new
是什么意思?您的问题不清楚。是否希望程序只返回nani
?
l3 = set(map(lambda x:x[0],liste1))
l4 = set(map(lambda x: x[0],liste2))
print list(l4.difference(l3))[0]
nani
>>>