0

以下のような辞書があります。

d = {
    '0:0:7': '19734',
    '0:0:0': '4278',
    '0:0:21': '19959',
    '0:0:14': '9445',
    '0:0:28': '14205',
    '0:0:35': '3254'
}

ここで、時間優先のキーで並べ替えたいと思います。

4

3 に答える 3

1

辞書はソートされていません。印刷したり、ソートされた順序で反復処理したりする場合は、最初にリストに変換する必要があります。

例えば:

sorted_dict = sorted(d.items(), key=parseTime)
#or
for t in sorted(d, key=parseTime):
    pass

def parseTime(s):
    return tuple(int(x) for x in s.split(':'))

ただし、これは sorted_dict に d['0:0:7'] 構文を使用できないことを意味することに注意してください。

sorted に「キー」引数を渡すと、リスト内の項目を比較する方法が Python に伝えられます。標準の文字列比較では、時間でソートすることはできません。

于 2014-02-22T11:35:59.797 に答える
0

collections.OrderedDictモジュールを見てください

于 2014-02-22T11:50:48.873 に答える