반응형
코드 비교: 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()를 추천합니다.
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
GitHub에서 커밋에 "Verified" 배지가 표시되는 이유 (0) | 2025.03.10 |
---|---|
Lambda 함수 (익명 함수)란? (1) | 2025.03.09 |
두 코드의 차이점 분석 (0) | 2025.03.08 |
[1, 2] vs [1 2] 차이, 파이썬 리스트와 NumPy 배열 (0) | 2025.03.05 |
실습 문제 풀이 (1) | 2025.03.04 |