728x90
AttributeError: 'str' object has no attribute 'sort'
오류는 문자열 자료형(str
)에 대해 리스트 전용 메서드인 sort()
를 호출하려 할 때 발생합니다. 문자열은 정렬 메서드를 직접 제공하지 않기 때문에 이와 같은 오류가 발생합니다.
정렬을 위해 sort()
를 사용하려면 문자열을 리스트로 변환한 뒤 리스트 메서드로 정렬하거나, 문자열에 대해 sorted()
내장 함수를 사용해야 합니다.
● 오류 발생 예시
text = "hello"
text.sort()
문자열 text
는 sort()
메서드를 갖고 있지 않기 때문에 오류가 발생합니다.
● 주요 원인
- 문자열을 리스트처럼 처리하려고 시도
- 정렬 대상 자료형이 문자열인지 확인하지 않고
sort()
호출 - 자료형에 대한 이해 부족으로 메서드 오용
● 해결 방법
- 문자열을 정렬하려면
sorted()
내장 함수 사용 - 문자열을 리스트로 변환 후
sort()
사용 type()
으로 변수의 자료형 확인
● 예시 코드 (정상 처리)
# 방법 1: sorted()
text = "hello"
result = sorted(text)
print(result)
# 방법 2: 리스트로 변환 후 sort()
char_list = list("hello")
char_list.sort()
print(char_list)
● 결론
문자열은 리스트처럼 요소를 직접 정렬할 수 없으며, sort()
메서드는 리스트 전용입니다. 문자열을 정렬하고자 한다면 sorted()
를 사용하거나, 리스트로 변환 후 정렬해야 합니다.
728x90