append, extend 차이

파이썬 공부

목록 보기
5/6

📌 append() vs extend() 차이 (Python 리스트 메서드)

둘 다 리스트(list)에 요소를 추가하는 메서드이지만, 동작 방식이 다릅니다.


1. append()

특징:

  • 리스트에 새로운 요소(객체)를 통째로 추가
  • 리스트 안에 리스트를 추가하면 중첩 리스트 형태로 저장
  • 기존 리스트의 길이가 1 증가

사용 예시:

lst = [1, 2, 3]
lst.append([4, 5])  # 리스트 자체를 추가
print(lst)  # 출력: [1, 2, 3, [4, 5]]

[4, 5] 자체가 하나의 요소로 추가됨

리스트가 아니라 개별 원소를 추가하면?

lst.append(6)
print(lst)  # 출력: [1, 2, 3, [4, 5], 6]

✔ 숫자 6은 하나의 원소이므로 그냥 추가됨


2. extend()

특징:

  • 리스트에 다른 리스트의 모든 요소를 개별적으로 추가
  • 리스트 안에 리스트를 추가하면 리스트를 풀어서 개별 원소로 추가
  • 기존 리스트의 길이가 새 리스트의 길이만큼 증가

사용 예시:

lst = [1, 2, 3]
lst.extend([4, 5])  # 리스트 요소를 개별적으로 추가
print(lst)  # 출력: [1, 2, 3, 4, 5]

[4, 5]가 개별 원소로 추가됨

숫자를 추가하려고 하면?

lst.extend(6)  # TypeError 발생! (반복 가능한 객체만 가능)

extend()반복 가능한(iterable) 객체만 받을 수 있음 (정수는 안됨)


3. append() vs extend() 비교

비교 항목append()extend()
추가 방식하나의 요소로 추가개별 요소로 추가
리스트를 추가할 때리스트 자체가 들어감 ([[4,5]])리스트가 풀려서 들어감 ([4,5])
기존 리스트의 길이 변화+1+추가 리스트 길이
데이터 타입 제한제한 없음 (어떤 타입이든 추가 가능)iterable(반복 가능한 객체)만 가능

정리:

  • 하나의 객체(리스트든 숫자든)를 추가하려면 append()
  • 다른 리스트의 원소를 "개별적으로" 추가하려면 extend()

4. 추가 비교 예제

lst = [1, 2, 3]

lst.append([4, 5])
print(lst)  # [1, 2, 3, [4, 5]]

lst.extend([6, 7])
print(lst)  # [1, 2, 3, [4, 5], 6, 7]

append()는 리스트 자체를 추가, extend()는 리스트 내부 원소만 추가


📌 결론: 언제 append(), 언제 extend()?

append()를 사용할 때

  • 리스트 안에 새로운 리스트 자체를 하나의 요소로 추가하고 싶을 때
  • 단일 요소 (숫자, 문자열 등)를 추가할 때

extend()를 사용할 때

  • 리스트에 다른 리스트의 모든 원소를 개별적으로 추가하고 싶을 때
  • 기존 리스트를 확장(extend)하고 싶을 때

🚀 요약:
append() = 하나의 요소 추가
extend() = 여러 개의 요소 추가 (리스트를 펼쳐서 추가)

profile
AI 답변 글을 주로 올립니다.

0개의 댓글