본문 바로가기
파이썬

파이썬 목록에서 상위 N 개 값의 인덱스 가져 오기

by º기록 2021. 2. 3.
반응형

a = [5,3,1,4,10] 이라는 목록이 있습니다. 5 10 에 대한 목록의 상위 두 값에 대한 인덱스를 가져와야합니다. [0, 4] 를 얻습니다. 그러한 경우에 파이썬이 제공하는 한 줄짜리가 있습니까?

 

해결 방법

 

sorted(range(len(a)), key=lambda i: a[i])[-2:]

또는

sorted(range(len(a)), key=lambda i: a[i], reverse=True)[:2]

또는

import operator

zip(*sorted(enumerate(a), key=operator.itemgetter(1)))[0][-2:]


zip(*heapq.nlargest(2, enumerate(a), key=operator.itemgetter(1)))[0]

 

참조 페이지 https://stackoverflow.com/questions/13070461

 

 

반응형

댓글