Programming/Python

배열에 아이템을 추가하는 메서드 .append(), .extend(), .insert() 비교

makeitworth 2021. 6. 21. 15:59

파이썬3에서 배열에 아이템을 추가하는 메서드는 .append(), .extend(), .insert() 등이 있는데, 특징에 차이가 있으므로 그 차이를 잘 기억해두자.

 

1. append()

 

가장 일반적으로 쓰이는 메서드. 기존 배열의 뒤에 () 안의 아이템이 들어가게 된다.

a = ['a','b','c','d']
a.append('a')
a

>> ['a', 'b', 'c', 'd', 'a']

 

문제는 append() 안에 배열을 넣을 경우, 배열 째로 들어가게 된다.

a = ['a','b','c','d']
b = ['e','f']
a.append(b)
a

 

>> ['a', 'b', 'c', 'd', ['e', 'f']]

 

2. extend()

 

append() 대신 extend()를 쓰게 되면 배열 안의 각 아이템이 추가된다.

 

a = ['a','b','c','d']
b = ['e','f']
a.extend(b)
a

>> ['a', 'b', 'c', 'd', 'e', 'f']

 

3. insert()

insert()의 경우에는 () 안에 추가할 아이템만 오는 것이 아니라, 추가될 위치 Index를 넣어, 아이템을 어디에 추가할지 지정할 수 있다.

인덱스를 같이 넣어주지 않고, append()처럼 넣고 싶은 요소만 넣으면 타입에러가 발생한다.

 

a = ['a','b','c','d']
a.insert(0, b)
a

>> [['e', 'f'], 'a', 'b', 'c', 'd']

 

a = ['a','b','c','d']
b = ['e','f']
a.insert(b)

>>

----- TypeError Traceback (most recent call last) <ipython-input-65-5eddaffc4930> in <module>

----> 1 a.insert(b)

TypeError: insert expected 2 arguments, got 1