리스트1과 리스트2에서 일치하는 값을 찾고 싶습니다. -파이썬


파이썬 초보입니다. 검색해봐도 제가 원하는 내용은 찾지 못했습니다. 도움 부탁드립니다.

List1 = [{'id':1}, {'id':2}, {'id':3 }, {'id':4}]

List2 = [{'id':1}, {'id':4}]

list1의 값을 순서대로 list2의 값과 비교해서 같은 값이 나올경우 특정 함수가 실행되게 짜려고 합니다.

  • 2017년 12월 04일에 작성됨

조회수 59


1 답변


각 리스트내 딕셔너리의 키는 같습니다. 즉 값만 이용해도 된다는 뜻입니다.

>>> List1 = [{'id':1}, {'id':2}, {'id':3 }, {'id':4}]
>>> List2 = [{'id':1}, {'id':4}]
>>> intersect_items = set([item['id'] for item in List1]) & set([item['id'] for item in List2]) # 두개의 리스트의 사전에 값만 추리고 교집합(같은값)을 구한다. 
>>> list(map(lambda i:i*2, intersect_items)) # 교집합 의 항목에 대해 2씩 곱하는 함수를 적용한다. 
  • 2017년 12월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close