인프런 커뮤니티 질문&답변

두둥탁님의 프로필 이미지

작성한 질문수

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

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

21.06.17 22:27 작성

·

2.7K

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. 23:04

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

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

친절한 설명 감사합니다~

0

DeepingSauce님의 프로필 이미지
DeepingSauce
지식공유자

2021. 06. 18. 07:33

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

의도하신 바로 진행을 하시려면 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을 하는 것이 아닌)