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

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

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

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

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

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

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

    >>> 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씩 곱하는 함수를 적용한다. 
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.