Post

[Python] List append(), extend(), insert()의 차이

[Python] List append(), extend(), insert()의 차이

Python에서 List에 요소를 추가하는 메서드로는 append(), extend(), insert() 3가지가 있습니다.
이번 포스팅에서는 리스트에 요소를 추가하는 3가지 메서드의 차이점과 각각의 사용법을 알아보겠습니다.

1. append() 메서드


append() 메서드는 어떤 객체든 단일 요소로 리스트의 끝에 추가합니다.

1
2
3
4
5
6
7
8
9
# 1. 숫자를 요소로 추가
numbers = [1, 2, 3]
numbers.append(4)
print(numbers)  # [1, 2, 3, 4]

# 2. 리스트를 요소로 추가
numbers = [1, 2, 3]
numbers.append([4, 5])
print(numbers)  # [1, 2, 3, [4, 5]]  <- 리스트가 중첩됨

위 예시와 같이 리스트를 append()하면 중첩 리스트가 생성됩니다.
이는 의도한 동작일 수도 있지만, 단순히 여러 요소를 추가하려는 경우라면 원하는 결과가 아닐 수 있습니다.

2. extend() 메서드


extend() 메서드는 반복 가능한 객체(iterable)의 각 요소를 개별적으로 리스트의 끝에 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 리스트 확장
numbers = [1, 2, 3]
numbers.extend([4, 5])
print(numbers)  # [1, 2, 3, 4, 5]

# 2. 문자열로 확장
letters = ['a', 'b']
letters.extend('cd')
print(letters)  # ['a', 'b', 'c', 'd']

# 3. 튜플로 확장
numbers = [1, 2]
numbers.extend((3, 4))
print(numbers)  # [1, 2, 3, 4]

위 예시와 같이 extend() 메서드는 리스트뿐만 아니라 모든 iterable 객체(리스트, 튜플, 문자열 등)를 받을 수 있습니다.

3. insert() 메서드


insert() 메서드는 특정 인덱스 위치에 단일 요소를 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 특정 위치에 요소 추가
numbers = [1, 2, 3]
numbers.insert(1, 9)  # 인덱스 1 위치에 9 추가
print(numbers)  # [1, 9, 2, 3]

# 2. 맨 앞에 요소 추가
numbers = [1, 2, 3]
numbers.insert(0, 0)
print(numbers)  # [0, 1, 2, 3]

# 3. 인덱스가 리스트 길이보다 큰 경우
numbers = [1, 2, 3]
numbers.insert(100, 4)  # 끝에 추가됨
print(numbers)  # [1, 2, 3, 4]

insert()append()처럼 객체를 단일 요소로 추가하지만, 리스트의 끝이 아닌 원하는 위치에 추가할 수 있습니다.
또한, 인덱스가 리스트 길이를 초과하면 자동으로 맨 끝에 요소가 추가된다는 특징이 있습니다.

4. 정리


특징append()extend()insert()
추가 방식객체를 단일 요소로 추가iterable의 각 요소를 개별 추가객체를 단일 요소로 추가
추가 위치리스트의 끝리스트의 끝지정한 인덱스 위치
인자 타입모든 객체iterable 객체인덱스, 모든 객체
리스트 길이 증가항상 1 증가iterable 요소 개수만큼 증가항상 1 증가
사용 예시단일 요소 추가, 중첩 리스트여러 요소 추가, 리스트 병합특정 위치에 요소 삽입
This post is licensed under CC BY 4.0 by the author.