나는 목록이 a = [5,3,1,4,10]
이라고 말한다. 목록 5와 10의 상위 2 개 값의 인덱스를 가져와야합니다. Python이 그러한 경우에 제공하는 한 줄짜리 코드가 있습니까?파이썬에서리스트의 상위 n 개의 값 인덱스를 얻는다.
28
A
답변
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
그냥 NumPy와 대안 :
import numpy as np
[a[i] for i in np.argsort(a)[-2:]]
+0
이 배열은 주어진 배열 'a'의 최상위 값 2 개를 제공합니다. 이것은 OP가 요구 한 것이 아닙니다. –
관련 문제
- 1. SQL 상위 N 값
- 2. 파이썬에서리스트의 bool 값
- 3. CakePHP에서 마지막으로 n 개의 결과를 얻는다.
- 4. 파이썬에서리스트의 길이는?
- 5. PostgreSQL을 사용하여 상위 N 개의 값을 업데이트하십시오.
- 6. 오라클 상위 N 개의 정렬 된 행
- 7. 파일에서 상위 n 개의 숫자 찾기
- 8. DynamoDB에서 그룹당 상위 N 개의 레코드 선택
- 9. 매트릭스 N 개의 가장 큰 요소의 인덱스를 얻기
- 10. MySQL 상위 N 그룹화
- 11. 개체 배열 상위 5 개의 고유 값
- 12. fsharp의 시퀀스에서 n에서 n + x까지의 원소를 얻는다
- 13. 데이터 프레임의 각 요소에 대한 상위 n 번째 값의 인덱스를 추출하십시오.
- 14. 테이블에서 n 개의 가장 큰 값 선택
- 15. jquery를 사용하여 N 개의 입력 값 계산
- 16. 동일하지 않은 가장 가까운 이웃 벡터의 n 개의 인덱스를 반환합니다.
- 17. SSRS : 상위 N 및 하위 N (필터)
- 18. PostgreSQL : 동일한 테이블의 항목 당 상위 n 개의 항목
- 19. 엔티티에 LINQ를 사용하여 상위 N 개의 레코드 가져 오기
- 20. 기준과 일치하는 상위 N 개의 행을 지정하는 방법은 무엇입니까?
- 21. 여러 조건을 기반으로 상위 n 개의 행을 선택하십시오.
- 22. Subsonic 3을 사용하여 상위 N 개의 레코드 선택
- 23. Linq to SQL - 상위 n 개의 행을 반환하십시오.
- 24. 동일한 테이블 내의 각 카테고리에서 상위 n 개의 레코드 선택
- 25. Oracle에서 그룹의 상위 n 요소를 선택하십시오
- 26. 상위 N %의 학생들 오라클
- 27. n 값 반복
- 28. 결과 집합의 각 id에 대해`n '행을 얻는다. MYSQL
- 29. 파이썬/numpy : 값 목록의 배열 위치를 얻는다
- 30. 문자열을 파이썬에서리스트의 인덱스로 사용하는 방법
누군가 마지막 두 사람이 뭘하는지 설명 할 수 있습니까? – user1717828