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

조회수 2813회

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

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

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

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

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)