以下のような辞書があります。
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'
}
ここで、時間優先のキーで並べ替えたいと思います。
以下のような辞書があります。
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'
}
ここで、時間優先のキーで並べ替えたいと思います。
辞書はソートされていません。印刷したり、ソートされた順序で反復処理したりする場合は、最初にリストに変換する必要があります。
例えば:
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 に伝えられます。標準の文字列比較では、時間でソートすることはできません。
collections.OrderedDictモジュールを見てください