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

如何用一行Python3代码按嵌套字典的uid键排序字典列表?

一行Python3代码实现嵌套字典按uid排序

嘿,你的问题很常见——嵌套结构的排序容易在itemgetter的用法上踩坑!你之前写的itemgetter('user').itemgetter('uid')是错误的,因为itemgetter不支持这种链式调用,正确的做法是一次性指定嵌套的键路径,或者用更直观的lambda表达式。

这里给你两种一行代码的解决方案:

方案1:使用operator.itemgetter(需导入模块)

先导入operator模块,直接把嵌套的键作为参数传给itemgetter,它会自动逐层取值:

import operator
result = sorted(rsp, key=operator.itemgetter('user', 'uid'))

方案2:使用lambda表达式(无需额外导入)

如果不想导入模块,lambda表达式更直观,直接指定要排序的字段路径:

result = sorted(rsp, key=lambda x: x['user']['uid'])

两种方法都能得到你想要的排序结果:

[{'user': {'uid': 1, 'name': 'Bob'}}, {'user': {'uid': 2, 'name': 'Cas'}}, {'user': {'uid': 5, 'name': 'Sid'}}]

简单解释下你之前的错误:itemgetter('user')返回的是一个用于提取'user'字段的函数,这个函数并没有itemgetter方法,所以链式调用会报错。而正确的itemgetter('user', 'uid')会先取每个元素的'user'值,再从里面取'uid'值,作为排序的依据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:06:26