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]]}

值是二维列表。

如何根据第三列值对键进行排序。

让我解释一下:键“ABC”的第三列最小值是 1.22(在 1.22、1.33 和 1.32 之间)。键“XYZ”的第三列最小值为 1.17(在 1.25、1.18、1.17 和 1.28 之间)。由于 1.17 > 1.22 'XYZ' 将是第一个,然后是 'ABC'。

4

1 回答 1

2

您可以使用sorted带有 key 函数的 python 内置函数来挑选要用作排序键的迭代的特定特征:

>>> [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 回答