我有一个字典d
如下:
d = {345: 23, 'c': 56, 'd': 23, 448: 78, 'a': 43, 'b': 43}
字典键是混合键。
是否可以通过关键字对字典进行排序,但是在字典中首先包含字符串值,因此在此示例中所需的输出将是:
d = {'a': 43,'b': 43,'c': 56, 'd': 23, 345: 23, 448: 78}
我尝试使用:
sortedlist = [(k, d[k]) for k in sorted(a)]
没有成功。我看过了,有一些关于对单类型词典进行排序以及如何对列表进行排序的答案,而对于混合类型词典却没有。
答案 0 :(得分:1)
尝试一下:
d = {345: 23, 'c': 56, 'd': 23, 448: 78, 'a': 43, 'b': 43}
sorteddict = {m : d[m] for m in sorted([k for k in d if type(k)==str])+sorted([k for k in d if type(k)!=str])}
输出:
{'a': 43, 'b': 43, 'c': 56, 'd': 23, 345: 23, 448: 78}