Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 두 개의 리스트를 비교하는 방법

파이썬에서 두 리스트를 비교하고 공통 요소를 찾는 가장 쉬운 방법은 집합(set)을 활용하는 것입니다. 집합으로 변환하면 리스트에서 중복된 값이 제거되어 고유한 값만 남게 되며, 이후 교집합(intersection)처럼 동작하는 & 연산자를 사용해 두 리스트의 공통 객체를 손쉽게 구할 수 있습니다.

기본 예제

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a) & set(b)
{5}

intersection() 함수 활용하기

연산자 대신 set.intersection() 메서드를 사용해도 동일한 결과를 얻을 수 있습니다.

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a).intersection(set(b))
{5}

참고: 다른 비교 방법

집합 외에도 리스트 컴프리헨션(list comprehension)을 사용하면 순서를 유지하면서 공통 요소를 추출할 수 있습니다.

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> [x for x in a if x in b]
[5]

단순히 공통 요소만 필요하다면 집합을 사용하는 것이 코드도 간결하고 실행 속도도 빠르기 때문에 가장 효율적인 선택입니다. 반면 원래 리스트의 순서나 중복 값이 중요하다면 리스트 컴프리헨션 방식을 고려해 보세요.