【发布时间】:2021-12-07 13:01:20
【问题描述】:
问题陈述:我有一个字典,其中值有许多不同的类型,如 int、str、list、class、class 属性、类方法等。我想通过type 进行值排序。就像字符串,列表一样,会先后休息。,
有人可以建议如何编写一个关键函数以便我可以控制sorting by type
class dummy:
a = 1
obj = dummy()
x = {'b':1,'a':'abc','c':obj, 'd':obj.a, 'e': [1,2,3]}
x = dict(sorted(x.items() , key = lambda x:type(x[1]))) #It will fail as can't compare the type
print(x)
预期输出:
打印(x)
{'a':'abc','e': [1,2,3] ,'c':obj, 'd':obj.a, 'b':1}
【问题讨论】:
-
如果您真的想这样做,请使用字典将类型映射到数值。但实际上,对字典进行排序并没有真正意义,因为字典的全部意义在于能够通过键而不是有序索引来查找值。对字典进行排序通常是没有意义的。
-
谢谢。这是我项目中非常特殊的需求。
标签: python sorting dictionary