2012-10-25 3 views

답변

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

또는

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

또는

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

또는

(긴 목록)

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

누군가 마지막 두 사람이 뭘하는지 설명 할 수 있습니까? – user1717828

0

그냥 NumPy와 대안 :

import numpy as np 

[a[i] for i in np.argsort(a)[-2:]] 
+0

이 배열은 주어진 배열 'a'의 최상위 값 2 개를 제공합니다. 이것은 OP가 요구 한 것이 아닙니다. –

관련 문제