[python] 리스트에 값 추가 += / append() / extend() 차이점

+= / append() / extend() 차이 한 번에 정리

파이썬에서 리스트에 값을 추가할 때
append(), extend(), += 중 무엇을 써야 할지 헷갈리는 경우가 많다.
겉보기엔 비슷하지만 동작 방식은 완전히 다르다.


1️⃣ append() — 요소 하나를 추가

a = [1, 2]

a.append(3)
print(a)

# [1, 2, 3]

리스트의 마지막에 요소 1개를 추가한다.

리스트를 append 하면?

a = [1, 2]

a.append([3, 4])
print(a)

# [1, 2, [3, 4]]

👉 리스트 자체가 하나의 요소로 들어간다.


2️⃣ extend() — 반복 가능한 객체를 풀어서 추가

 
a = [1, 2]

a.extend([3, 4])
print(a)

# [1, 2, 3, 4]
  • 리스트, 튜플, 문자열 등 반복 가능한 객체(iterable) 
  • 요소 단위로 하나씩 추가한다

문자열을 extend 하면?

a = [1, 2]

a.extend("ABC")
print(a)

# [1, 2, 'A', 'B', 'C']

⚠️ 문자열도 iterable 이라 문자 단위로 들어간다


3️⃣ += — extend() 와 동일한 동작

 
a = [1, 2]

a += [3, 4]
print(a)

# [1, 2, 3, 4]
  • 내부적으로는 extend() 와 같은 동작
  • 문법만 더 간결할 뿐, 결과는 동일

📌 한눈에 비교 정리

방법동작 방식결과
append(x) 요소 1개 추가 [1, 2, [3, 4]]
extend(iterable) 요소를 풀어서 추가 [1, 2, 3, 4]
+= iterable extend() 와 동일 [1, 2, 3, 4]

💡 언제 뭘 써야 할까?

✔ append()를 쓰는 경우

  • 객체 하나를 통째로 넣고 싶을 때
  • 팀 하나, 사용자 하나, 데이터 묶음 하나
 
teams.append(team)

✔ extend() / += 를 쓰는 경우

  • 리스트를 합칠 때
  • 여러 요소를 한 번에 추가할 때
 
users.extend(new_users) # 또는 users += new_users

🧠 기억하기 쉬운 한 줄 요약

append = 하나
extend / += = 풀어서

이 기준만 기억해도
리스트 조작에서 헷갈릴 일은 거의 없다.