반응형
파이썬 리스트에 새로운 원소를 추가하여 확장시킬 때 사용하는 함수인 append()와 extend()에 대해 살펴보고 두 메소드의 차이점을 알아보도록 하겠습니다.
list를 생성 후 새로운 데이터를 삽입하려면 크게 세 함수를 활용하여 삽입 가능합니다.
바로 insert, append, extend인데요.
여기서는 가장 헷갈리는 append와 extend에 대해 알아보죠.
파이썬 list의 append는 list.append(x) 를 통해 리스트 맨 마지막 요소로 x를 추가할 수 있습니다.
(append appends a specified object at the end of the list)
파이썬 list의 extend는 list.extend(iterable 객체) 를 통해 리스트 맨 마지막 요소로 iterable의 모든 항목을 삽입할 수 있습니다. (extend extends the list by appending elements from the specified iterable)
간단한 예를 들어보면
append의 경우
x = [1, 2, 3]
x.append([4, 5])
print(x)
# x:
# x = [1, 2, 3, [4, 5]]
extend의 경우
x = [1, 2, 3]
x.extend([4, 5])
x
# x의 값:
# x = [1, 2, 3, 4, 5] <<<<< 4와 5가 리스트로 묶여서 들어가지 않았음
차이가 보이시나요?
쉽게 생각했을 때 list의 append(x)는 x 그자체를 리스트의 맨 마지막 요소로 추가합니다. 그게 iterable이건, int건 신경쓰지 않습니다.
반면에 list의 extend(x)는 x가 iterable이어야 한다는 조건이 있으며, iterable을 요소를 하나씩 꺼내어 list의 맨 끝부분부터 채워넣는다고 생각하면 되겠습니다.
반응형
'파이썬 > 자료구조' 카테고리의 다른 글
[python] stack 구현 (고정길이 스택 fixed stack, class 활용) (0) | 2023.03.06 |
---|---|
[python] 던더함수, 더블언더스코어 의미 (__len__), (__contains__) (0) | 2022.12.23 |
[python] 함수 활용 시 매개변수가 뮤터블 vs 이뮤터블 일때.. (0) | 2022.12.19 |