다들 알다시피 append와 extend는 리스트에 요소를 추가하는 메서드다. 알고리즘 문제를 풀다가 extend를 썼어야 할 때에 append를 써서 틀려 이번 기회에 뭐가 다른지 차이점을 확실히 짚고 넘어가고 싶어 포스팅한다.
✏️append(x)
append 메서드는 리스트 끝에 요소를 그대로 추가한다. 추가되는 요소는 리스트의 마지막에 추가된다.
lst = [1, 2, 3]
lst.append(4)
print(lst) # 출력: [1, 2, 3, 4]
✏️extend(iterable)
반면 extend 메서드는 리스트 끝에 다른 리스트의 모든 요소를 추가한다. 추가되는 요소들은 리스트의 마지막에 순서대로 추가된다. 여기서 iterable은 리스트, 튜플, 문자열 등과 같은 반복 가능한 객체이다.
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst1.extend(lst2)
print(lst1) # 출력: [1, 2, 3, 4, 5, 6]
✏️append와 extend의 차이
위의 예시로 append와 extend의 차이를 비교해보면,
- append 했을 때
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst1.append(lst2)
print(lst1) # 출력: [1, 2, 3, [4, 5, 6]]
- extend 했을 때
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst1.extend(lst2)
print(lst1) # 출력: [1, 2, 3, 4, 5, 6]
즉, append는 x 그 자체를 원소로 넣고, extend는 iterable의 각 요소들을 넣는다고 할 수 있다.
리스트 안에 리스트가 있을 때
x = ['jin', 'jun', 'yeon']
y = [['yeong', 'jong']]
x.append(y)
print(x) # 출력: ['jin', 'jun', 'yeon', [['yeong', 'jong']]]
x = ['jin', 'jun', 'yeon']
y = [['yeong', 'jong']]
x.extend(y)
print(x) # 출력: ['jin', 'jun', 'yeon', ['yeong', 'jong']]
append는 x 그 자체를 원소로 넣고, extend는 가장 바깥 쪽 iterable을 넣는다.
y가 문자열일 때
x = ['jin', 'jun', 'yeon']
y = 'jong'
x.append(y)
print(x) # 출력: ['jin', 'jun', 'yeon', 'jong']
x = ['jin', 'jun', 'yeon']
y = 'jong'
x.extend(y)
print(x) # 출력: ['jin', 'jun', 'yeon', 'j', 'o', 'n', 'g']
append는 x 그 자체를 원소로 넣고, extend는 문자열의 각 알파벳을 넣는다.
✏️정리
list.append(x) 는 리스트 끝에 x 1개를 그대로 넣는다.
list.extend(iterable)는 리스트 끝에 가장 바깥쪽 iterable의 모든 항목을 넣는다.
'Programming Languages > Python' 카테고리의 다른 글
[Python] 파이썬에서의 집합, set 함수 (4) | 2024.08.12 |
---|---|
[Python] 파이썬에서 최소 공배수 함수로 구하기 (0) | 2024.06.13 |
[Python] 알고리즘 문제 풀다 발견한 대소문자 바꾸기 메서드.. 우리의 시간을 아끼자 ^ㅡ^ (0) | 2024.05.13 |
[Python] 리스트와 딕셔너리의 차이 (2) | 2024.04.29 |
[Python] 변수의 mutable과 immutable의 차이 (1) | 2024.04.20 |