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

송찬호님의 프로필 이미지

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

섹션2 k번째 수 질문

23.01.09 09:57 작성

·

184

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

import sys
sys.stdin=open("input.txt", "rt")

T=int(input())
for t in range(T):
    n, s, e, k = map(int, input().split())
    a=list(map(int, input().split()))
    a=a[s-1:e].sort()  
    print("#%d %d"%(t+1,a[k-1]))

저는 처음에 코드를 이런식으로 작성을 했었는데

TypeError: 'NoneType' object is not subscriptable 에러가 뜨게 됩니다. 검색해서보니 none인 경우에 index를 사용하려고 할때 다음과 같은 에러가 생긴다는 것을 알게 되었습니다. sort()함수를 같이 써주고 a를 출력해보면 none이 뜨게 되는데 왜 none이 뜨는지 그 이유를 모르겠습니다.

a=a[s-1:e].sort() 
a=a[s-1:e]
a.sort() 

이렇게 쓰면 저는 같은 결과가 나올 것이라고 생각했는데 위에 코드에서 a를 찍어보면 none이 출력됩니다. 그 이유가 알고 싶습니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

2023. 01. 15. 18:57

안녕하세요^^

파이썬의 sort() 함수는 호출한 리스트를 정렬하고 반환하는 값은 None를 반환합니다.

위에 코드에서

print(a.sort()) # None출력

print(a) # 정렬되어 있는 a 출력

를 해보세요.

먼저 None가 출력되고 a는 정렬되어 있을 겁니다.