2012-03-31 6 views
1

同じ値が割り当てられているキーをアルファベット順に並べ替える辞書があります。例えばアルファベットで同じ値のキーを並べ替える

:{チャイ:1、リンゴ:1、DOMバナナ:1}

どのように私はアルファベット順にこれらのキーをソートします!

ありがとうございました。

+0

検討[ 'sorted'(http://docs.python.org/library/functions.html#sorted)または[' itertools'(http://docs.python.org/literal/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の場合、変数を追加したり関数を書くことができます。 *例*であり、出力の形式を指定していません。 –

関連する問題