+= / 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 / += = 풀어서
이 기준만 기억해도
리스트 조작에서 헷갈릴 일은 거의 없다.