You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于自定义键规则对字典元素排序,解决unhashable type: 'dict'报错

问题原因

Rules_2nd_order.items() 返回的每个迭代元素是 (键, 值) 二元组,你在lambda函数中直接把整个二元组传给dict_RulesLabel作为查询键,而这个二元组的第二个元素是字典类型(不可哈希,不能作为字典的键),因此触发了类型错误。

解决方法

把lambda里的查询对象改成二元组的第一个元素(也就是Rules_2nd_order的键,刚好是dict_RulesLabel支持的键类型)即可,修改后的代码:

sortedRules_2nd_order = dict(sorted(Rules_2nd_order.items(), key=lambda x: dict_RulesLabel[x[0]]))
优化建议

如果Rules_2nd_order中可能存在dict_RulesLabel里没有收录的键,可以加上默认值避免触发KeyError,示例如下:

# 不在规则里的键默认排到末尾
sortedRules_2nd_order = dict(sorted(Rules_2nd_order.items(), key=lambda x: dict_RulesLabel.get(x[0], float('inf'))))

内容的提问来源于stack exchange,提问作者coconut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:39:03