
오늘은 Python에서 흔히 발생하는 자료형 관련 오류를 살펴보았다. 특히 tuple과 dict 객체에서 reverse()나 append()와 같은 메서드를 호출할 때 발생하는 에러의 원인과 해결법을 학습했다.
my_tuple = (10, 20, 30, 40, 50)
my_tuple.reverse() # ❌ AttributeError 발생
✅ 해결 방법: 튜플 → 리스트 변환 후 처리
✔ 방법 1: reversed() 함수 사용
my_tuple = (10, 20, 30, 40, 50) reversed_tuple = tuple(reversed(my_tuple)) print(reversed_tuple) # (50, 40, 30, 20, 10)
✔ 방법 2: 슬라이싱 사용
my_tuple = (10, 20, 30, 40, 50) reversed_tuple = my_tuple[::-1] print(reversed_tuple) # (50, 40, 30, 20, 10)
✔ 정리
| 방법 | 코드 | 특징 |
|---|---|---|
reversed() | tuple(reversed(my_tuple)) | 함수형 접근 |
| 슬라이싱 | my_tuple[::-1] | 간결하고 빠름 |
reverse() | ❌ 사용 불가 (immutable 오류) | tuple에서는 불가 |
my_dict = {'name': 'Bob', 'age': 25}
my_dict.append('gender') # ❌ AttributeError 발생
✅ 딕셔너리에 값 추가하는 올바른 방법
✔ 방법 1: 새 키에 값 할당
my_dict['gender'] = 'male' print(my_dict) # {'name': 'Bob', 'age': 25, 'gender': 'male'}
✔ 방법 2: .update() 메서드 사용
my_dict.update({'gender': 'male'}) print(my_dict)
💡 값 없이 키만 넣고 싶을 때
my_dict['gender'] = None
✔ 정리
| 하고 싶은 일 | 잘못된 코드 | 올바른 코드 |
|---|---|---|
| 항목 추가 | my_dict.append('gender') | my_dict['gender'] = 'male' 또는 update() 사용 |
😕 어려웠던 점
- tuple에도 reverse()가 있을 거라 착각함
- dict에 append()를 쓸 수 있을 거라 오해함
🔧 해결 방법
- 각 자료형의 mutable / immutable 특성을 다시 정리함
- 공식 문서에서 각 자료형이 지원하는 메서드 목록 확인
- 실습을 통해 직접 오류 메시지를 보고 원인 파악
🍀 TOD (Thought of the day)
“배움은 어제의 나를 넘어서는 오늘의 유일한 길이다.”
— 알버트 아인슈타인