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

Python中如何基于另一字典列表长度迭代生成重复字典列表?

问题解决:生成重复字典的列表

原代码问题分析

你写的代码存在两个核心问题:

  • 迭代逻辑错误:for list2 in list1:会把list2变量直接覆盖为list1里的字典,完全没对原本包含3个空字典的list2做任何操作
  • 未定义变量:代码里的data和file没有提前定义,且逻辑和需求不匹配,没有实现对list2元素的更新

正确实现方法

方法一:更新原list2的空字典

如果需要保留原来的list2列表对象,遍历每个空字典并更新内容:

import json

list1 = [{"A": "a", "B": "b"}]
list2 = [{}, {}, {}]

# 取出list1中的目标字典
target_dict = list1[0]
# 遍历list2的每个元素,用update方法写入键值对
for item in list2:
    item.update(target_dict)

# 写入文件(如果需要)
with open("result.json", "w") as f:
    json.dump(list2, f, indent=4)

# 输出结果
print(list2)
# 输出:[{'A': 'a', 'B': 'b'}, {'A': 'a', 'B': 'b'}, {'A': 'a', 'B': 'b'}]

方法二:直接生成新列表

如果不需要保留原list2的空字典,可直接生成包含3个独立字典的新列表:

import json

list1 = [{"A": "a", "B": "b"}]
target_dict = list1[0]

# 用列表推导式生成,注意用copy()创建独立字典,避免引用同一对象
list2 = [target_dict.copy() for _ in range(3)]

# 写入文件
with open("result.json", "w") as f:
    json.dump(list2, f, indent=4)

print(list2)

注意:不要用[target_dict]*3,这种方式会让列表里的所有元素指向同一个字典对象,修改其中一个会同步改变其他所有字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:32:24