按键对字典进行排序,其中字符串键位于int键之前

时间:2019-03-20 07:56:39

标签: python

我有一个字典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)]

没有成功。我看过了,有一些关于对单类型词典进行排序以及如何对列表进行排序的答案,而对于混合类型词典却没有。

1 个答案:

答案 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}