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

如何在Python中按指定格式合并两个字典

Python 如何将多个字典组织成列表形式?

问题描述

现有两个字典:

dict1={
     'kl':'ngt',
     'schemas':
            [
              {
               'date':'14-12-2022',
               'name':'kolo'
              }
           ]
     }
 
dict2={
     'kl':'mlk',
     'schemas':
            [
              {
               'date':'14-12-2022',
               'name':'maka'
              }
           ]
}

需要将它们组织成一个列表all_dict,列表中的每个元素为原字典(可按需修改字典内容),最终结构如下:

all_dict=[
    {
    'kl':'ngt',
    'schemas':
        [
          {
           'date':'14-12-2022',
           'name':'kolo'
          }
       ]
    },
     {
     'kl':'mlk',
     'schemas':
           [
             {
               'date':'23-10-2022',
               'name':'maka'
          }
       ]
     }
]

解决方案

方法1:直接构造列表

这是最直观的实现方式,直接将目标字典作为元素放入列表:

# 先按需修改字典内容(比如修改dict2的date字段)
dict2['schemas'][0]['date'] = '23-10-2022'

# 构造目标列表
all_dict = [dict1, dict2]

执行后all_dict的结构完全符合需求。

方法2:批量处理多个字典

如果后续需要加入更多字典(如dict3、dict4),可以直接扩展列表元素,或者通过批量方式生成:

# 新增示例字典
dict3 = {'kl': 'xyz', 'schemas': [{'date': '01-01-2023', 'name': 'test'}]}

# 扩展列表
all_dict = [dict1, dict2, dict3]

# 若字典按规律命名(如dict1、dict2...dictn),可使用列表推导式批量获取
all_dict = [globals()[f'dict{i}'] for i in range(1, 4)]

注意事项

如果需要避免原字典被修改时影响all_dict中的内容,需要对字典进行深拷贝,示例如下:

import copy

all_dict = [copy.deepcopy(dict1), copy.deepcopy(dict2)]

这样后续修改原字典dict1或dict2时,all_dict中的元素不会同步变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:15:53