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

如何将列表中的字典转换为指定结构的Python字典?

如何将指定列表转换为目标字典结构(Python)?

需求说明

输入列表(Python中字典键值需为合法格式,以下修正为字符串形式):

[
    {'A': 'a', 'B': 'b', 'C': 'c'},
    {'D': 'd', 'E': 'e', 'F': 'f'}
]

目标字典结构:

{
    'A': {'A': 'a', 'B': 'b', 'C': 'c'},
    'D': {'D': 'd', 'E': 'e', 'F': 'f'}
}

实现方法

方法1:循环遍历(直观易懂)

遍历原列表的每个子字典,提取子字典的第一个键作为新字典的键,子字典本身作为对应值:

original_list = [
    {'A': 'a', 'B': 'b', 'C': 'c'},
    {'D': 'd', 'E': 'e', 'F': 'f'}
]

result_dict = {}
for item in original_list:
    # 取子字典的第一个键(Python 3.7+字典有序,按插入顺序获取)
    first_key = next(iter(item.keys()))
    result_dict[first_key] = item

print(result_dict)

方法2:字典推导式(简洁高效)

用一行代码完成转换,逻辑与循环遍历一致:

original_list = [
    {'A': 'a', 'B': 'b', 'C': 'c'},
    {'D': 'd', 'E': 'e', 'F': 'f'}
]

result_dict = {next(iter(item.keys())): item for item in original_list}

print(result_dict)

注意事项

  • 字典有序性:Python 3.7及以上版本中,字典默认保留插入顺序,因此next(iter(item.keys()))能稳定获取子字典的第一个键。若使用低于3.7的版本,字典无序,需确保每个子字典中存在唯一的目标键(如示例中的'A'、'D'),可通过键的特征筛选。
  • 空字典处理:如果原列表中可能存在空字典,需添加非空判断避免报错:
    # 循环方式
    result_dict = {}
    for item in original_list:
        if item:
            first_key = next(iter(item.keys()))
            result_dict[first_key] = item
    
    # 推导式方式
    result_dict = {next(iter(item.keys())): item for item in original_list if item}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:06:09