튜토리얼

Python에서 두 리스트 비교하기

작성자 7분 소요

Python에서 두 리스트를 비교해 차이·공통·고유 요소를 찾는 일은 매우 흔합니다. 목적에 맞춰 다음 방법들을 선택하세요.


1. set (가장 빠르고 간결)

순서/중복이 중요하지 않을 때 적합합니다.

list_a = [1, 2, 3, 4, 5]
list_b = [4, 5, 6, 7, 8]

set_a = set(list_a)
set_b = set(list_b)

common = set_a & set_b      # 교집합
only_a = set_a - set_b       # A에만
only_b = set_b - set_a       # B에만
symm   = set_a ^ set_b       # 대칭차

장점: 대용량에서도 매우 빠르고 간결. 단점: 순서/중복이 사라짐.


2. 리스트 컴프리헨션(순서/중복 유지)

list_a = [1, 2, 3, 4, 5, 5]
list_b = [4, 5, 6, 7, 8]

only_a = [x for x in list_a if x not in list_b]  # [1, 2, 3]
common  = [x for x in list_a if x in list_b]     # [4, 5, 5]

성능 팁: list_b를 set으로 변환 후 사용하면 in 조회가 빨라집니다.

set_b = set(list_b)
common = [x for x in list_a if x in set_b]

3. for 반복문(초보자 친화적)

only_a = []
for x in list_a:
    if x not in list_b:
        only_a.append(x)

4. collections.Counter(빈도 비교)

from collections import Counter

ca = Counter(['a', 'b', 'b', 'c'])
cb = Counter(['b', 'c', 'd', 'e'])

common = list((ca & cb).elements())  # ['b', 'c']
only_a = list((ca - cb).elements())  # ['a', 'b']

장점: 빈도 기준 비교에 적합. 단점: 원래 순서를 유지하지 않음.


요약

방법 장점 단점 권장 용도
set 빠르고 간결 순서/중복 없음 교집합·(대칭)차집합
리스트 컴프리헨션 순서/중복 유지 대용량에서 느릴 수 있음(셋 권장) 조건 필터/순서 유지
for 반복문 확장 쉬움 다소 장황 초보자/복잡 조건
Counter 빈도 비교 용이 순서 없음 개수 차이 비교

팁: 멤버십 체크만 필요하면 대상 리스트를 set으로 변환해 성능을 높이세요.

태그

#Python#리스트 비교#튜토리얼

작성자 소개

songshiqiang1인 개발자

AI 도구로 재미있는 웹사이트를 만듭니다.

관련 글

튜토리얼

Instagram에서 누가 언팔했는지 확인하는 법

공식 데이터 내보내기와 온라인 비교 도구로 안전하게 ‘맞팔 아님’을 찾습니다.

6분 소요
#Instagram#팔로워#리스트 비교#튜토리얼
더 읽기
튜토리얼

Excel에서 두 리스트 비교하기

조건부 서식, VLOOKUP, COUNTIF, 고급 필터, Power Query, 배열 수식까지 6가지 실전 방법을 정리했습니다.

8분 소요
#Excel#리스트 비교#튜토리얼
더 읽기
튜토리얼

Excel에서 드롭다운 목록 만드는 방법

상세 튜토리얼: 기초부터 고급까지, 동적 드롭다운 목록과 다단계 연동 옵션을 만들어 데이터 입력을 더욱 효율적이고 정확하게 만드는 방법을 배워보세요.

8분 읽기
#Excel#드롭다운 목록#데이터 검증#튜토리얼
더 읽기