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

如何排序字典列表使'vid'键始终排在首位?

解决字典内部键顺序调整的问题

你之前用sorted(viri_assets, key=lambda d: list(d.keys()))没用是因为这个方法是对列表里的字典进行排序,而不是修改单个字典内部的键顺序。要让每个字典的vid排第一、name排第二,得重新构造每个字典,利用Python 3.7+字典保留插入顺序的特性来实现。

基础实现(仅处理vid和name)

如果你的字典里只有这两个键,直接用列表推导式重新生成每个字典即可:

viri_assets = [
    {'vid': 'transpower_036', 'name': '221_02_PB_520_REF_174050'},
    {'name': '242_07_DINA_HSTLR_YT_210238', 'vid': 'transpower_168'},
    {'vid': 'transpower_170', 'name': '242_08_DINA_HSTLR_YT_210220'},
    {'name': '251_PS04_PB_520_REF_109968', 'vid': 'transpower_166'},
    {'vid': 'transpower_165', 'name': '251_PS05_PB_520_REF_109967'},
    {'name': '31089', 'vid': 'transpower_064'}
]

# 重新构造每个字典,指定键顺序
formatted_assets = [{'vid': d['vid'], 'name': d['name']} for d in viri_assets]

# 验证结果
for item in formatted_assets:
    print(item)

运行后每个字典的键顺序都会是vid在前,name在后。

兼容其他键的情况

如果字典里还有其他键,想要保留它们同时维持vid、name的顺序,可以这样写:

formatted_assets = []
for d in viri_assets:
    # 先固定vid和name的位置
    new_dict = {'vid': d['vid'], 'name': d['name']}
    # 遍历原字典的其他键,追加到新字典中
    for key in d:
        if key not in ('vid', 'name'):
            new_dict[key] = d[key]
    formatted_assets.append(new_dict)

这样既保证了vid和name的顺序,也不会丢失其他键的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:40:33