Python에서 두 목록을 병합하는 방법(연결 및 확장)

Python에서 두 목록을 병합하고 결합하는 가장 좋은 방법을 알아보세요. 플러스 연산자, 확장 메소드, 목록 풀기 및 체인 옵션을 비교하십시오.

Editor에서 이 솔루션을 사용해 보세요.

개요

목록 데이터 세트를 결합하는 작업은 결과를 집계하거나, 데이터 배치를 처리하거나, 컬렉션에 항목을 추가할 때 자주 수행되는 작업입니다. Python은 목록을 내부에서 수정할 것인지 아니면 새 목록을 만들 것인지에 따라 목록을 병합하는 여러 가지 방법을 제공합니다.

두 개의 기존 목록을 결합하여 새로운 목록을 만들려면 가장 간단한 방법은 연결 연산자 `+`(예: `list3 = list1 + list2`)를 사용하는 것입니다. 또는Python 3.5+에서 목록 압축 풀기 구문 `[*list1, *list2]`를 사용할 수 있습니다. 이는 표현력이 뛰어나고 목록 생성 중 어디에나 추가 요소를 쉽게 삽입할 수 있게 해줍니다.

다른 목록의 요소를 추가하여 기존 목록을 수정하려는 경우 '.extend()' 메서드가 가장 효율적인 선택입니다. 이렇게 하면 새 목록에 메모리를 할당하는 것을 방지하고 대상 목록을 직접 수정합니다. 메모리에 데이터를 복제하지 않고 병합된 목록을 메모리 효율적으로 탐색하려면 `itertools.chain()`을 사용할 수 있습니다.

코드 및 실행 출력

이 스크립트는 연산자, 확장 및 압축 풀기 기술을 사용하여 두 목록을 병합하는 방법을 보여줍니다.

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

# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)

# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)

# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)
터미널 출력
Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]

단계별 구현

  • + 연산자를 사용하여 목록을 병합하고 새로운 결합된 목록을 반환합니다.
  • list_a.extend(list_b)를 호출하여 list_b의 모든 요소를 list_a에 직접 추가합니다.
  • 별표 풀기 연산자 [*list_a, *list_b]를 사용하여 두 요소 모두에서 목록을 구성합니다.

자주 묻는 질문

추가()와 확장()의 차이점은 무엇입니까?

Append()는 전체 목록 인수를 단일 중첩 요소로 추가하는 반면, Extension()은 목록 인수의 압축을 풀고 각 요소를 개별적으로 추가합니다.

중복 항목을 제거하면서 목록을 병합하려면 어떻게 해야 하나요?

이들을 병합한 다음 결과를 세트로 변환하거나 먼저 세트로 변환할 수 있습니다: list(set(list_a) | set(list_b)).

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.