리스트1과 리스트2에서 일치하는 값을 찾고 싶습니다. -파이썬
조회수 2814회
파이썬 초보입니다. 검색해봐도 제가 원하는 내용은 찾지 못했습니다. 도움 부탁드립니다.
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씩 곱하는 함수를 적용한다.
댓글 입력