가능한 중복 엔트리는 :정렬 첫 번째 순서 및 인쇄를 감소에서 사전의 항목 N
Get first N key pairs from an Ordered Dictionary to another one in python
print sorted(mydictionary.iteritems(), key=operator.itemgetter(1), reverse=True)
가능한 중복 엔트리는 :정렬 첫 번째 순서 및 인쇄를 감소에서 사전의 항목 N
Get first N key pairs from an Ordered Dictionary to another one in python
print sorted(mydictionary.iteritems(), key=operator.itemgetter(1), reverse=True)
: 사전에 분류 항목을 인쇄하려면,이 코드를 사용하고
print sorted(mydictionary.items(), key=operator.itemgetter(1), reverse=True)[:10]
당신은 사용할 수 있습니다 heapq.nlargest
:
import heapq
print heapq.nlargest(n, mydictionary.iteritems())
보통이 (정렬 후 슬라이스 할 때와 같은) 효율성이 현저하지만, 매우 큰 사전의 경우 작은 의 경우 약간 빨라집니다 (따라야 할 분석). 읽기 쉽다는 이점이 있습니다!
+1은'heapq.nlargest'입니다. -하지만 작은 사전은 상상할 수 있습니다. timsort가 너무 많이 최적화되어 있기 때문에 빠릅니다. 나는'nlargest'가 timsort + slicing을 능가 할 때 이것을 보여주는 몇 가지 타이밍을보고 싶습니다. – senderle
OP는 "큰 사전"이라는 질문에서 말합니다 ... 저는 나중에 10000 개 이상의 사전에 대해 약간의 타이밍을 시도하고 업데이트 할 것입니다. 그러나 약간은 더 빠르게 보일 것입니다. 그러나 그것들은 대부분 muchness입니다. 그러나 항상 더 읽기 쉽습니다! –
그래서 기본적으로 'n'개의 첫 번째 항목을 목록에서 가져 오는 방법을 묻는 중입니까? 그리고 연구를하고 아무것도 못 찾았습니까? – delnan
http://stackoverflow.com/questions/8287000/get-first-n-key-pairs-from-an-ordered-dictionary-to-another-one-in-python...Just는 중복 게시물임을 확인했습니다. 이 게시물을 삭제하십시오. 나는 할 수 없다. 감사합니다 –
@ JustinCarrey 그것은'OrderedDict'에 관한 것입니다. (아마도 다른 질문의 중복이긴하지만) –