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

如何为Python字典的多个键分别追加对应不同数组数据?

解决方法

你的问题出在嵌套循环遍历所有键和所有数据组,导致每个键的列表都被追加了所有数据。正确的思路是让字典的键和数据组一一对应,以下是两种简洁的实现方式:

方式一:直接通过配对生成字典(推荐)

利用zip()将自动生成的键列表和原数据组一一配对,直接构建目标字典:

A = ([12, 13, 15], [13, 16, 18], [15, 15, 17])
# 生成与数据组数匹配的键名:group1、group2...groupN
keys = [f'group{i+1}' for i in range(len(A))]
# 键与数据组配对,转成字典;如果需要将元组转成列表,用推导式处理
group_dict = {key: list(data) for key, data in zip(keys, A)}

运行后group_dict的结果:

{'group1': [12, 13, 15], 'group2': [13, 16, 18], 'group3': [15, 15, 17]}

方式二:先创空字典再逐个填充

如果你需要先初始化空字典再逐步添加数据,通过索引关联键和对应的数据组即可:

A = ([12, 13, 15], [13, 16, 18], [15, 15, 17])
# 初始化空列表字典
group_dict = {f'group{i}': [] for i in range(1, len(A)+1)}

# 遍历数据组的索引和内容,对应到指定键
for idx, data_group in enumerate(A):
    target_key = f'group{idx+1}'
    # 用extend添加组内所有元素,若要把整个组作为单个元素存入,改用append(data_group)
    group_dict[target_key].extend(data_group)

错误原因说明

你之前的嵌套循环逻辑类似这样:

# 错误示例:所有数据被追加到每个键的列表
for key in group_dict:
    for data in A:
        group_dict[key].extend(data)

这种逻辑会让每个键遍历所有数据组,自然所有数据都会进入每个列表。只要保证一个键只对应索引匹配的一个数据组,就能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:20:42