반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Add list to set? (0) | 2021.02.03 |
---|---|
파이썬 Python __str__ 대 __unicode__ (0) | 2021.02.03 |
파이썬 How does condensed distance matrix work? (pdist) (0) | 2021.02.02 |
파이썬 Flask보기에서 JSON 응답 반환 (0) | 2021.02.02 |
파이썬 Python 전역 / 지역 변수 (0) | 2021.02.02 |
댓글