[Python] append()와 extend()
하단의 목차를 클릭하여 이동할 수 있습니다 :)
1. append()
2. extend()
3. 비교 표
4. Reference
- append()와 extend() 모두 파이썬 리스트에 원소를 추가할 때 사용한다.
1. append()
- 사용하는 방법은 list.append(item)으로 사용한다.
- item : 추가될 원소
- 주어진 item을 하나의 원소로 리스트에 추가한다. (a = [1, 2, 3]).
- a.append(1) → a = [1, 2, 3, 1]
- a.append([1, 2, 3]) → a = [1, 2, 3, [1, 2, 3]]
- a.append('string') → a = [1, 2, 3, 'string']
- a.append(['a', 'b', 'c']) → a = [1, 2, 3, ['a', 'b', 'c']]
- 새로운 배열을 생성하지 않고 기존의 배열에 추가한다.
- 시간 복잡도는 $O(1)$이다.
2. extend()
- 사용하는 방법은 list.extend(iterable) 이다.
- iterable이란 반복할 수 있는 객체를 의미한다. (e.g. lsit, set, tuple, etc.).
- iterable이 추가 될 때 extend는 iterable의 원소를 개별적으로 하나의 원소로서 리스트에 추가한다. (a = [1, 2, 3]).
- a.extend([1, 2, 3]) → a = [1, 2, 3, 1, 2, 3]
- a.extend('string') → a = [1, 2, 3, 's', 't', 'r', 'i', 'n', 'g']
- a.extend([1] * 5) → [1] 다섯 개로 된리 스트를 생성한 뒤, 해당 리스트를 추가한다. 즉, [1, 1, 1, 1, 1]을 생성하고 추가하기에 a = [1, 2, 3, 1, 1, 1, 1, 1]이 된다.
- 새로운 iterable을 받아서 추가한다. 따라서 iterable의 크기에 영향을 받는다.
- extend()의 빅 오는 iterable의 영향을 받기에 $O(k)$가 된다. (k = iterable의 요소의 수).
3. 비교 표
언제 extend()를 사용할까?
표를 보면 효율 측면에서 append()가 항상 효율적이다. 그럼에도 extend()를 사용하는 경우는 iterable의 값을 개별적으로 입력해야 할 경우이다. 예를 들어 ["string', 'car', 'cat']을 모두 글자 단위로 입력하고 싶은 경우 extend()를 사용한다. 단, iterable의 길이가 길어질수록 시간 복잡도가 늘어난다는 단점이 있다.
p.s. list.extend([2] * 10)과 같이 새로운 리스트를 생성하는 경우 메모리 또한 사용한다.
4. Reference
https://www.geeksforgeeks.org/append-extend-python/
append() and extend() in Python - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
'♧ Computer science' 카테고리의 다른 글
[Python] enumerate을 통해 순회하기 (0) | 2024.11.22 |
---|---|
[Python] split() 함수를 사용한 문자열 분할하기. (0) | 2024.10.26 |