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

如何快速将字典列表转换为以pay为键的嵌套字典

将字典列表转换为以'pay'为键的嵌套字典

原始输入

original_list = [
    {'first': '0', 'last': 'hg', 'pay': '0', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '195', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '1', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '344', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '4', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '6', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '5', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '7', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '8', 'hossain': '{}'},
    {'first': '0', 'last': 'hg', 'pay': '9', 'hossain': '{}'}
]

期望输出

desired_dict = {
    '0': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '195': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '1': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '344': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '4': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '6': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '5': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '7': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '8': {'first': '0', 'last': 'hg', 'hossain': '{}'},
    '9': {'first': '0', 'last': 'hg', 'hossain': '{}'}
}

快速转换方法

方法1:字典推导式(最简洁,不修改原数据)

直接通过字典推导式遍历列表,提取pay作为外层键,同时生成移除pay键的内层字典:

result = {item['pay']: {k: v for k, v in item.items() if k != 'pay'} for item in original_list}

方法2:使用pop(高效但修改原列表)

如果不需要保留原始列表中的字典结构,可以用pop直接移除pay键并获取其值作为外层键:

result = {}
for item in original_list:
    pay_key = item.pop('pay')
    result[pay_key] = item

注意:此方法会改变原始列表中的字典内容,若需保留原数据优先选方法1。

方法3:处理重复pay键的场景

如果原始列表存在相同pay值的字典,上面的方法会覆盖旧条目。若要将同pay的字典收集为列表,可这样处理:

result = {}
for item in original_list:
    pay_key = item['pay']
    cleaned_item = {k: v for k, v in item.items() if k != 'pay'}
    if pay_key in result:
        result[pay_key].append(cleaned_item)
    else:
        result[pay_key] = [cleaned_item]

内容的提问来源于stack exchange,提问作者حسین سلطانی

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:55:16