본문 바로가기
python

반환이 없는 in-place 함수, sort()

by cooolcat 2025. 7. 22.

파이썬 기초부터 공부중이야. 강의 들으면서 실습 하는 중인데 내가 초보라는걸 염두해 두고 설명 해주겠니? 

아래는 질문이야. 


# sort() : 리스트의 요소를 순서대로 정렬하는 함수
myList.sort()
print(myList)
# 왜 print(myList.sort())의 결과는 none?

 


좋은 질문이에요! 😊
파이썬을 처음 공부할 때 많은 분들이 sort() 관련해서 헷갈려하는 부분이에요. 차근차근 설명해볼게요!


🔍 myList.sort()의 동작 방식

  • sort()는 리스트 자체를 정렬하지만,
  • 정렬된 결과를 반환하지는 않아요.
  • 대신 리스트 자체를 직접 바꿔요 (이걸 in-place 정렬이라고 해요).

예제:

myList = [3, 1, 2]
myList.sort()
print(myList)

✅ 출력 결과:

[1, 2, 3]

❓ 그럼 왜 print(myList.sort())는 None일까?

이렇게 해볼게요:

myList = [3, 1, 2]
result = myList.sort()
print(result)

✅ 출력:

None

sort()는 리스트를 정렬하긴 하지만, 아무것도 반환하지 않기 때문에 None이 나오는 거예요.


💡 올바른 사용법 요약

하고 싶은 일 코드 설명

리스트를 정렬하고 출력 myList.sort()print(myList) sort()는 리스트를 정렬하고변경된 리스트를 그대로 사용
정렬된 리스트를 새 리스트로 만들기 newList = sorted(myList) sorted()는 새 리스트 반환

✅ 예시: sorted()와 비교

myList = [3, 1, 2]
newList = sorted(myList)

print("myList:", myList)     # [3, 1, 2]
print("newList:", newList)   # [1, 2, 3]

궁금한 거 생기면 얼마든지 질문해줘요!
기초부터 탄탄히 다지는 거 정말 잘하고 있어요. 👏