2012-03-31 4 views
1

동일한 값이 할당 된 키를 사전 순으로 정렬하려는 사전이 있습니다. 예를 들어알파벳순으로 같은 값의 키 정렬

: {차이 : 1, 사과 : 1, DOM 바나나 : 1}

어떻게 알파벳이 키를 정렬합니까?!

감사합니다.

+0

고려 ['sorted' (http://docs.python.org/library/functions.html#sorted) 또는 ['itertools' (http://docs.python.org /library/itertools.html)을 (동일한 그룹에 속해 있다고 판단되면) [사전 분류] (http://en.wikipedia.org/wiki/Lexicographical_order)에 추가하십시오. – MrGomez

답변

4
>>> from collections import defaultdict 
>>> items = {'chai':1, 'apple':1, 'dom banana':1} 
>>> d = defaultdict(list) 
>>> for k,v in items.iteritems(): 
     d[v].append(k) 
>>> {k:sorted(v) for k,v in d.iteritems()} 
{1: ['apple', 'chai', 'dom banana']} 
+0

코드 주셔서 고맙습니다. 그러나 거대한 키 범위가 있으며 가장 큰 값의 상위 10 개 키를 출력하고 싶지만 같은 값의 여러 키가 있습니다. 정렬 된 키를 자체적으로 (고유 값) 또는 정렬 (다른 키와 같은 값을 공유)하는 다른 키와 함께 표시하려면 어떻게합니까? –

+0

별도의 질문으로 질문해야합니다. D – jamylak

+0

아니면 그냥이 질문에 추가하십시오. – jamylak

0
sorted(k for k,v in D.iteritems() if v == 1) 
+0

예를 들어 작동하지만 다른 키를 정렬 할 수도 있습니다. – jamylak

+0

@jamylak이면 변수를 추가하거나 함수를 작성할 수 있습니다. * 예제 *이고 질문은 출력 형식을 지정하지 않았습니다. –

관련 문제