我有以下字典:
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'。
答案 0 :(得分:2)
您可以使用带有键功能的python builtin 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']