我正在尝试对字典值中的元组列表中的第一项进行排序。
这是我的字典:
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])
答案 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'))}