기술블로그

➕ += vs .append() 완전 정복 – 언제 어떤 걸 써야 할까?

Chansman 2025. 4. 29. 23:16

➕ += vs .append() 완전 정복 – 언제 어떤 걸 써야 할까?

파이썬을 쓰다 보면 값을 누적할 일이 많습니다.
그럴 때 흔히 사용하는 것이 += 와 .append() 입니다.
하지만 이 둘은 사용 대상이 다르고 동작 방식도 미묘하게 차이가 있어요!


✅ 요약 비교표

구분 += .append()

목적자료형방식
+= 문자열, 숫자, 리스트 값을 누적하거나 이어붙이기
.append() 리스트 전용 리스트에 요소 추가하기
사용 자료형 문자열, 숫자, 리스트 리스트 전용
동작 방식 값을 이어붙이거나 더함 리스트에 요소 하나를 추가함
반환값 없음 (변수 자체 변경) 없음 (리스트 변경)

📌 문자열에 += 사용 (⭕ 가능)

text = ""
text += "Hello"
text += " World"
print(text)  # 출력: Hello World

❗ 문자열에는 .append() 없음 → AttributeError 발생


📌 리스트에 .append() 사용 (⭕ 가장 권장)

titles = []
titles.append("기생충")
titles.append("인셉션")
print(titles)  # ['기생충', '인셉션']

📌 리스트에 += 사용 (⭕ 가능하지만 주의)

titles = ["기생충"]
titles += ["인셉션"]
print(titles)  # ['기생충', '인셉션']

💡 +=는 리스트를 풀어서 요소들을 추가합니다.

titles += "슬램덩크"
# 결과: ['기생충', '인셉션', 'ㅅ', 'ㅡ', 'ㄹ', '...', 'ㅋ'] ← 실수 주의 ❗

📌 문자열을 만들 때 append() ❌, +=

html = ""
for title in ["기생충", "어벤져스"]:
    html += f"<p>{title}</p>"

print(html)
# 출력: <p>기생충</p><p>어벤져스</p>

📌 문자열을 리스트로 누적한 후 join() 사용 (⭕ 대안)

movie_titles = [
    f'<a href="/movie/{index}/">{movie["title"]}</a><br>'
    for index, movie in enumerate(movie_list)
]
response_text = ''.join(movie_titles)
return HttpResponse(response_text)

💡 리스트에 문자열을 누적하고, 마지막에 ''.join()으로 한번에 합치면 더 효율적입니다.


🎯 실전 요약 정리

상황 추천 방식
문자열 붙이기 +=
숫자 누적 합산 +=
리스트에 요소 하나 추가 .append()
여러 요소 한꺼번에 추가 .extend() or += [a, b]
HTML 문자열 모아서 출력 list.append() + ''.join()

✅ 결론

  • +=간결하고 직관적이지만, 리스트에서는 주의가 필요합니다.
  • .append()리스트 조작에 최적화되어 있으며, 구조적 데이터를 다룰 때 더 명확합니다.
  • 문자열 누적이 많은 경우에는 list.append()로 모았다가 ''.join()으로 출력하는 방식이 성능에도 더 좋습니다.

🎯 실전 요약 정리

상황 추천 방식

문자열 붙이기 +=
숫자 누적 합산 +=
리스트에 요소 하나 추가 .append()
여러 요소 한꺼번에 추가 .extend() or += [a, b]

✅ 결론

  • +=는 간결하고 직관적이지만, 리스트에서는 주의가 필요합니다.
  • .append()는 리스트 조작에 최적화되어 있으며, 구조적 데이터를 다룰 때 더 명확합니다.

둘 다 잘 활용하면, 코드의 효율성과 가독성이 훨씬 좋아집니다!
필요하면 .extend()나 .insert(), .pop() 등도 함께 정리해보세요 😊