Python对字符串进行排序,该字典的值是多维列表

时间:2012-08-01 01:19:14

标签: python sorting dictionary multidimensional-array

我有以下字典:

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'。

1 个答案:

答案 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']