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

Python中如何按name键对字典内列表元素排序(保留首元素)

按name键字母排序Clients数据的解决方案

实现思路

你的需求是保留data数组中第一个统计客户端数量的对象,将后续带有name键的客户端对象按name的字母顺序排序。核心步骤是拆分数据、单独排序目标对象、再重组数组。

完整代码示例

# 原始数据
Clients = {
    "data": [
        {"nClients": 3},
        {"name": "cTest1", "roll_no": 1, "branch": "c"},
        {"name": "fTest3", "roll_no": 3, "branch": "it3"},
        {"name": "aTest2", "roll_no": 2, "branch": "it2"}
    ]
}

# 拆分数据:提取第一个非客户端对象,剩余为待排序的客户端列表
first_item = Clients["data"][0]
clients_to_sort = Clients["data"][1:]

# 按name字段的字母升序排序
clients_to_sort.sort(key=lambda x: x["name"])

# 重组data数组
Clients["data"] = [first_item] + clients_to_sort

# 可选:输出格式化后的JSON结果
import json
print(json.dumps(Clients, indent=4))

代码说明

  1. 拆分数据:把data数组中第一个无name键的元素单独提取,剩下的元素是需要排序的客户端对象集合。
  2. 排序逻辑:使用列表的sort()方法,通过key参数指定排序依据为对象的name字段,lambda x: x["name"]会提取每个对象的name值作为排序键,默认按字母升序排列。
  3. 重组数组:将保留的第一个元素和排序后的客户端列表合并,赋值回Clients["data"],得到目标结构。

运行上述代码后,输出的Clients数据就会和你期望的结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:52:36