• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

왜 list가 아닌 None이 출력되나요?

21.06.17 22:27 작성 조회수 2.04k

0

안녕하세요 최근 파이썬에 입문한 사람입니다.
sort기능을 사용하다가 이해가 안되는 부분이 있어 질문드립니다.
a = [1,2,3,1]
b = a.sort()
print(b)
-----------
None
왜 [1,1,2,3]이 나오지 않고 none이 나오는건가요? 변수 b는 Ram의 주소를 할당받고, 이공간 안에 정렬된 리스트값을 넣어주는 게 아닌가요? 아시는 분 답변주시면 감사하겠습니다^^

답변 2

·

답변을 작성해보세요.

0

두둥탁님의 프로필

두둥탁

질문자

2021.06.18

아하 return이 있어야 b가 값을 가져갈텐데

반환되는게 없어서 none이 되는거군요. a 내부적으로만 정렬을 하구요.

친절한 설명 감사합니다~

0

안녕하세요! 좋은 질문 감사드립니다.

의도하신 바로 진행을 하시려면 list 클래스 내에 정의되어있는 method인 sort()가 아닌, Python 에서 기본으로 제공하는 sorted()를 사용해야됩니다.(sorted(a) 처럼)

그렇다면 a.sort()는 왜 어떤 값도 리턴을 하지 않을까요? 클래스에 대해서 현재 수강을 하셨다는 가정하에 설명을 드리면, list라는 클래스로 만든 객체(여기서는 a)는 내부적으로 1,2,3,1이라는 값을 attribute로 들고 있다가( e.g. self.values), sort()라는 클래스에 정의된 method가 호출되면 self.values를 정렬시키고 다시 self.values에 담아둡니다(return을 하는 것이 아닌)