2016-07-13 4 views
-2

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

포르투갈

포르투갈

0 호나우두

나니

나니

은 내가 liste1 [모든] [0]하지만 난 그것에 잘 모릅니다을 검색해야 추측

나니가 호날두.

+0

'무엇을 의미 new' 않습니다 그것은 liste1에없는 liste2의 항목을 반환 할 것인가? 귀하의 질문은 명확하지 않습니다. – DeepSpace

+0

프로그램이 단지'nani'를 반환하기를 원합니까? –

답변

1

내가 liste2에 새로운 단어를 찾으려면


당신은 지능형리스트를 사용하고 liste2 만 새 항목을 소요 filter을 적용 할 수 있습니다 :

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

각 목록 항목의 첫 번째 요소 집합을 만든 다음 그 차이를 가져올 수 있습니다.

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

출력 :

nani 
>>> 
관련 문제