0

次の形式のエントリを含む辞書があります

a = dict({(2,2013):[], (2,2011):[], (7,2013):[] , (4,2013):[]})

出力を次のようにしたい:

{(2,2011):[], (2,2013):[], (4,2013):[] , (7,2013):[]}

ところで、(月、年)であるはずですが、どうすればそれを達成できますか?

4

3 に答える 3

1
import operator
myDict = {1: 1, 2: 2, 4:4, 2:1}
sorted_myDict = sorted(myDict.iteritems(), key=operator.itemgetter(1))

sorted_myDict は、各タプルの 2 番目の要素でソートされたタプルのリストになります。

@Decencyの回答も非常に良いオプションです。

于 2013-10-08T18:37:08.637 に答える
0

何らかの理由で順序を保持する必要がある場合は、OrderedDict オブジェクトを使用できます。

順序付き辞書は通常の辞書と同じですが、アイテムが挿入された順序を記憶しています。順序付けられたディクショナリを反復処理する場合、項目はキーが最初に追加された順序で返されます。

ドキュメント: http://docs.python.org/2/library/collections.html#collections.OrderedDict

class collections.OrderedDict([items])
于 2013-10-08T18:35:09.720 に答える