파이썬/자료구조

[Python] append vs extend (list의 append와 extend 차이점)

Big Ben 2022. 12. 27. 18:37
반응형

파이썬 리스트에 새로운 원소를 추가하여 확장시킬 때 사용하는 함수인 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의 맨 끝부분부터 채워넣는다고 생각하면 되겠습니다.

반응형