본문 바로가기
IT 실무

[파이썬 트러블슈팅] TypeError: 'NoneType' object is not subscriptable(정렬 사용후)

by 지식id 2020. 8. 2.
반응형

에러 코드

# my_list를 정렬해 앞의 5개만 출력하고 싶다.
my_list = my_list.sort()
print(my_list[:5])

 

list.sort() 는 리스트를 변환 시킨 후 아무것도 반환하지 않는다. 그래서 sort의 반환값을 사용하려고 하면 에러가 발생하는 것이다. 아래와 같이 하면 에러를 발생시키지 않는다. sort() 한 결과를 기존 배열에 할당 시키는건 기존 배열을 지워버리는 것과 마찬가지다.

아래와 같이 하면 에러가 발생하지 않는다.

 

수정 코드

my_list.sort()
print(my_list[:5])

 

만약 원본 데이터인 my_list가 변경되는 것이 싫다면 아래와 같이 표현할 수도 있다.

 

수정 코드

print(sorted(my_list)[:5])

 

반응형

댓글