파이썬 공식문서

list.append(x)
리스트의 끝에 항목을 더합니다. a[len(a):] = [x] 와 동등합니다.

list.extend(iterable)
리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장합니다. a[len(a):] = iterable 와 동등합니다.

직접 해보기

int로 이루어진 list

my_list_1 = [1, 2, 3]
my_list_2 = [4, 5, 6]

 

 

my_list_1.append(my_list_2)
print(my_list_1)
[1, 2, 3, [4, 5, 6]]

-> my_list_2 의 항목이 한번에 들어가서 2중 리스트의 형태를 만든다

my_list_1.append(4)
print(my_list_1)
[1, 2, 3, 4]

-> 4가 리스트로 감싸지지 않아 바로 리스트에 들어간다

my_list_1.extend(my_list_2)
print(my_list_1)
[1, 2, 3, 4, 5, 6]

-> my_list_2의 항목이 순서대로 돌며 my_list_1의 뒤에 추가된다

my_list_1.extend(4)
print(my_list_1)
my_list_1.extend(4)
TypeError: 'int' object is not iterable

-> 4는 iterable한 인자가 아니라 TypeError를 일으킨다

 

str으로 이루어진 list

my_list_3 = ['apple', 'banana']
my_list_4 = ['coffe', 'milk']

 

my_list_3.append(my_list_4)
print(my_list_3)
['apple', 'banana', ['coffe', 'milk']]

-> my_list_4의 항목이 리스트 통채로 들어간다

my_list_3.append('grape')
print(my_list_3)
['apple', 'banana', 'grape']

-> grape 항목이 그대로 추가된다

my_list_3.extend(my_list_4)
print(my_list_3)
['apple', 'banana', 'coffe', 'milk']

-> 리스트의 항목이 개별적으로 추가된다

my_list_3.extend('grape')
print(my_list_3)
['apple', 'banana', 'g', 'r', 'a', 'p', 'e']

-> 문자열 'grape'를 돌며 요소 하나하나씩 list에 추가된다

 

 

개인적인 생각으론 .append()는 입력된 값을 통채로 집어넣는다

.extend()는 입력된 값을 순회하며 값을 하나씩 분리해서 집어넣는다고 느끼면 될 것 같다

반응형

+ Recent posts