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

Python – 한 리스트를 다른 리스트에 삽입하는 방법 (append vs extend)

파이썬에서는 하나의 리스트를 다른 리스트에 삽입하는 대표적인 방법으로 append()extend() 두 가지 메서드가 있습니다. 두 메서드 모두 리스트에 새로운 요소를 추가하지만, 동작 방식에는 중요한 차이가 있습니다.

extend() 메서드란?

extend() 메서드는 인자로 전달된 리스트(또는 반복 가능한 객체)의 개별 요소들을 기존 리스트의 끝에 하나씩 추가합니다. 즉, 전달된 시퀀스(seq)의 내용이 통째로 풀려서 원본 리스트에 병합되는 방식입니다.

append() 메서드란?

반면 append() 메서드는 전달된 객체를 하나의 요소로 그대로 리스트 끝에 추가합니다. 따라서 리스트를 append()로 추가하면 해당 리스트 자체가 중첩된(nested) 형태로 들어가게 됩니다.

예제 코드

아래 예제를 통해 두 메서드의 차이를 직접 확인해 보겠습니다.

# append 사용 예시
first_list = [1, 2, 3, 4, 5]
second_list = [6, 7, 8, 9, 10]
first_list.append(second_list)

# append 결과 출력
print("append를 사용한 리스트 : " + str(first_list))

# extend 사용 예시
third_list = [11, 12, 13, 14, 15]
fourth_list = [16, 17, 18, 19, 20]
third_list.extend(fourth_list)

# extend 결과 출력
print("extend를 사용한 리스트 : " + str(third_list))

실행 결과

append를 사용한 리스트 : [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]
extend를 사용한 리스트 : [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

결과 분석 및 차이점 정리

실행 결과에서 알 수 있듯이, append()를 사용한 경우 second_list가 하나의 요소로 중첩되어 [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]] 형태가 되었습니다. 반면 extend()를 사용한 경우 fourth_list의 각 요소가 개별적으로 병합되어 [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]처럼 하나의 평탄한(flatten) 리스트가 만들어졌습니다.

  • append(x) : x를 단일 요소로 추가 → 리스트 길이가 1만큼 증가
  • extend(iterable) : iterable의 각 요소를 개별적으로 추가 → 요소 수만큼 길이 증가

따라서 두 리스트를 하나로 합치고 싶다면 extend()를, 리스트 안에 리스트를 중첩 구조로 넣고 싶다면 append()를 사용하는 것이 올바른 선택입니다.