【发布时间】:2021-10-11 13:12:34
【问题描述】:
我正在尝试按字典值的绝对值对字典进行排序,而实际上并未将其值更改为绝对值。
例如,如果我们有一个字典
my_dict = {(): 10, ("desk", "chair"): 4, ("coke"): -20}
我希望最终的排序输出是
{("desk", "chair"): 4, (): 10, ("coke"): -20}
我通过简单的研究找到了一种基于字典绝对值排序的方法
my_dict = {k, v for k,v in sorted(my_dict.items(), key = lambda dict_key: abs(my_dict[dict_key]))}
但是,在运行时我得到KeyError: ((): 10)。我不知道如何干净地修改我的代码来解释空值。有任何想法吗?我试图查看其他文档和文章,但找不到任何原因。
【问题讨论】:
-
这不是你得到的错误。
-
dict(sorted(my_dict.items(), key=lambda x: abs(x[1]))) -
{k, v for是语法错误。以后需要调试帮助,需要提供minimal reproducible example。
标签: python python-3.x sorting