3
두 개의 목록으로 구성된 두 개의 목록이 있습니다.두 요소로 된 하위 목록의 두 목록 사이의 대칭 차이는 어떻게 얻을 수 있습니까?
a = [['Adolf', '10'], ['Hermann', '20'], ['Heinrich', '30'], ['Heinrich', '15']]
b = [['Rudolf', '40'], ['Adolf', '50']]
하위 목록의 '키'첫 번째 요소를 기반으로 두 목록의 '대칭 차이'를 가져 오려고합니다.
이 '대칭 차이'
은 다음과 같습니다 가 모두 목록에 존재하기 때문에 다른 사람이 '는 등하면서 그래서,'아돌프 '항목이 제거 된c = [['Hermann', '20'], ['Heinrich', '30'], ['Heinrich', '15'], ['Rudolf', '40']]
Rudolf '항목은 두 목록에 모두 존재하지 않기 때문에 포함되었습니다.
또 다른 예는 다음과 같습니다
a = [['Adolf', '10'], ['Hermann', '20'], ['Heinrich', '30'], ['Heinrich', '15']]
b = [['Heinrich', '25']]
c = [['Adolf', '10'], ['Hermann', '20']]
내가이 일부 영리한 지능형리스트를 통해 달성해야한다고 생각을하지만 난 그것을 접근하는 방법을 아주 확실하지 않다.
c = [x for x in a_pairs if x not in b_pairs]
이 중대하다. 당신의 도움을 주셔서 대단히 감사합니다. 나는 세트의 멋진 기능을 알지 못했습니다! – d3pd
사이드 노트와 마찬가지로, symmetric_difference()도 [set method] (https://docs.python.org/3/library/stdtypes.html?highlight=set#set.symmetric_difference)입니다. 'a'와'b'가 세트라면, 대칭 차이는'a.symmetric_difference (b)'또는'b.symmetric_difference (a)'를 통해 리턴 될 수 있습니다. – dagrha