如何在没有密钥匹配的情况下按升序对列表进行排序?
每个密钥都是唯一的,需要排序密钥。
输入:
[{23: (1, 5)},
{59: (2, 3)},
{45: (2, 9)},
{28: (3, 6)}]
输出应该是这样的(基于dict键的排序):
[{23: (1, 5)},
{28: (3, 6)},
{45: (2, 9)},
{59: (2, 3)}]
答案 0 :(得分:2)
如果你的词典总是只有一个键,那么在Python 2.x中:
print sorted([{23: (1, 5)}, {59: (2, 3)}, {45: (2, 9)}, {28: (3, 6)}])
会给:
[{23: (1, 5)}, {28: (3, 6)}, {45: (2, 9)}, {59: (2, 3)}]
默认情况下,使用sorted()
在Python 2.x中将生成正确排序的列表。
对于Python 3.x:
print(sorted([{23: (1, 5)}, {59: (2, 3)}, {45: (2, 9)}, {28: (3, 6)}], key=lambda x: next(iter(x))))
这使用lambda函数从字典中提取第一个(也是唯一的)键,并将其用作排序键。