23.01.09 09:57 작성
·
187
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는 정렬되어 있을 겁니다.