使用Python对字典值中的元组列表中的项进行排序

时间:2016-08-23 22:41:42

标签: python sorting dictionary

我正在尝试对字典值中的元组列表中的第一项进行排序。

这是我的字典:

d = {'key_': (('2', 'a'), ('3', 'b'), ('4', 'c'), ('1', 'd'))}

我希望排序的输出看起来像这样:

d2 = {'key_': (('1', 'd'), ('2', 'a'), ('3', 'b'), ('4', 'c'))}

我尝试将值排序到新词典,但这不起作用:

d2 = sorted(d.values(), key=lambda x: x[0])

1 个答案:

答案 0 :(得分:2)

d.values()返回字典中存在的所有值的列表。但是在这里,您要对列表进行排序,该列表作为与key_键对应的值存在。因此,您必须将已排序的函数调用为:

# Using tuple as your example is having tuple instead of list
>>> d['key_'] = tuple(sorted(d['key_'], key=lambda x: x[0]))
>>> d
{'key_': (('1', 'd'), ('2', 'a'), ('3', 'b'), ('4', 'c'))}

或者(不建议),您也可以直接对列表进行排序,而无需调用sorted函数:

>>> d['key_'] = list(d['key_']).sort(key=lambda x: x[0])
{'key_': (('1', 'd'), ('2', 'a'), ('3', 'b'), ('4', 'c'))}