0

私は次の辞書を持っています:

DICT = {'ABC': [[u'2012-07-19', 1.22, 1, 1.22, 1, 0], [u'2012-04-26', 1.33, 210, 1.33, 210, 0], [u'2011-11-14', 1.25, 171, 1.32, 241, 70]], 
'XYZ': [[u'2012-02-17', 1.82, 59, 1.25, 182, 123], [u'2011-04-06', 1.50, 30, 1.18, 54, 24], [u'2011-01-06', 1.21, 38, 1.17, 41, 3], [u'2010-06-21', 1.28, 26, 1.28, 26, 0]]}

値は2次元のリストです。

値の3番目の列に基づいてキーを並べ替えるにはどうすればよいですか。

説明させてください。キー「ABC」の3番目の列の最小値は1.22です(1.22、1.33、1.32のうち)。キー「XYZ」の3番目の列の最小値は1.17です(1.25、1.18、1.17、および1.28の間)。1.17> 1.22以降、「XYZ」が最初になり、次に「ABC」になります。

4

1 に答える 1

2

キー関数でpython ビルトインsortedを使用して、並べ替えキーとして使用するイテラブルの特定の特性を選択できます。

>>> [l[1] for l in DICT['XYZ']]
[1.82, 1.5, 1.21, 1.28]
>>> min(l[1] for l in DICT['ABC'])
1.22
>>> sorted(DICT, key=lambda k: min(l[1] for l in DICT[k]))
['XYZ', 'ABC']
于 2012-08-01T01:30:56.633 に答える