십대를 위한 코딩/십대를 위한 파이썬

[코드 비교] sort 관련 코드

forSilver 2025. 3. 8. 15:46
반응형

코드 비교: sort 관련 코드

코드 비교


📌 첫 번째 방법 (sort() 사용)

fruits = ["apple", "banana", "cherry"]
fruits.sort(key=len)
print(fruits)

출력:

['apple', 'banana', 'cherry']

📌 두 번째 방법 (sorted() 사용 + lambda)

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)

출력:

['apple', 'banana', 'cherry']

1. sort() vs sorted() 차이점

sort() 사용 sorted() 사용

동작 방식 리스트 자체를 정렬 (in-place) 새로운 정렬된 리스트 반환
반환 값 None (원본 리스트 변경됨) 정렬된 새로운 리스트 반환
사용 형태 리스트.sort(key=...) sorted(리스트, key=...)
가독성 원본 리스트를 변경하기 때문에 주의가 필요 원본 리스트를 유지하고 새 리스트를 생성

2. 어떤 방법이 더 좋은가?

  • 원본 리스트를 변경해도 되는 경우 👉 sort() 사용이 가능
  • 원본 리스트를 유지하면서 새로운 정렬된 리스트가 필요한 경우 👉 sorted() 사용이 적절

💡 추천

대부분의 경우 sorted()를 사용하는 것이 더 유연하고 안전한 선택입니다.
특히 원본 데이터를 보존하는 것이 중요한 경우 sorted()를 사용하는 것이 좋습니다.

📌 예제

words = ["apple", "banana", "cherry"]

# 원본 리스트 유지
sorted_words = sorted(words, key=len)
print("원본 리스트:", words)  # ['apple', 'banana', 'cherry']
print("정렬된 리스트:", sorted_words)  # ['apple', 'banana', 'cherry']

# 원본 리스트 변경
words.sort(key=len)
print("원본 리스트 변경 후:", words)  # ['apple', 'banana', 'cherry']

💡 결론

원본을 유지하면서 정렬된 새로운 리스트를 얻고 싶다면 sorted() 사용
원본 리스트를 직접 변경하고 싶다면 sort() 사용
💡 실제 코딩에서는 sorted()가 더 유연하므로 일반적으로 sorted()를 추천합니다.