리스트에 여러 항목을 이어 붙이려면 extend()를 쓰세요. append()에 리스트를 넘기면 그 리스트 하나가 새 항목으로 들어갑니다. 아래 가상 과일 목록은 같은 입력을 두 방식으로 추가한 결과입니다.
by_append = ["배"]
by_extend = ["배"]
extra = ["자두", "배"]
by_append.append(extra)
by_extend.extend(extra)
print("append 결과", by_append)
print("extend 결과", by_extend)
append 결과 ['배', ['자두', '배']]
extend 결과 ['배', '자두', '배']
append 결과의 두 번째 항목은 ["자두", "배"]라는 리스트입니다. extend 결과에는 그 안의 자두와 배가 각각 항목으로 추가됐습니다. 두 메서드 모두 호출한 원래 리스트를 바꿉니다.
추가할 묶음을 한 항목으로 보관하려면 append(extra)를, 묶음의 원소를 현재 목록에 이어 넣으려면 extend(extra)를 선택하면 됩니다. extend는 전달한 iterable에서 나온 항목을 그대로 추가하므로, 항목 자체가 리스트라면 그 안까지 다시 풀지는 않습니다.
문자열을 넘기거나 반환값을 저장했을 때
문자열도 iterable이어서 extend("자두")는 글자별로 추가합니다. 과일 이름 하나를 넣으려는 경우에는 append("자두")가 맞습니다.
fruits = ["배"]
returned = fruits.extend("자두")
print("변경된 목록", fruits)
print("반환값", returned)
변경된 목록 ['배', '자', '두']
반환값 None
append()와 extend()의 반환값은 None입니다. 변경된 목록을 쓰려면 호출 뒤의 fruits를 사용하세요. fruits = fruits.extend(...)처럼 반환값을 다시 대입하면 fruits에는 None이 남습니다.
가상 과일 목록은 Windows의 Python 3.14.3에서 실행했습니다. 항목 하나와 iterable의 원소를 추가하는 동작은 Python의 리스트 메서드 문서에서 확인할 수 있습니다.