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

如何将两个列表完整合并为字典?当前方法丢失部分数据

解决重复键的列表合并字典问题

字典的键具有唯一性,直接用dict(zip(name_list, num_list))创建字典时,name_list中的重复键会自动覆盖前序对应的值,导致部分数据丢失。要完整保留所有数据,需要让每个键对应一个列表,收集所有匹配的num_list元素,以下是两种实现方法:

方法一:使用字典setdefault方法

name_list =[225.85, 286.818, 238.8, 282.43, 238.522, 238.378, 233.989, 294.957, 238.522, 290.847, 238.8, 282.286, 290.847, 282.008, 282.43, 233.989, 225.85, 282.008, 294.957, 282.286, 286.818, 238.378, 229.961]
num_list =[[3, 24, 5, 12], [3, 12, 24, 5], [3, 12, 5, 24], [3, 5, 24, 12], [3, 5, 12, 24], [24, 3, 12, 5], [24, 3, 5, 12], [24, 12, 3, 5], [24, 12, 5, 3], [24, 5, 3, 12], [24, 5, 12, 3], [12, 3, 24, 5], [12, 3, 5, 24], [12, 24, 3, 5], [12, 24, 5, 3], [12, 5, 3, 24], [12, 5, 24, 3], [5, 3, 24, 12], [5, 3, 12, 24], [5, 24, 3, 12], [5, 24, 12, 3], [5, 12, 3, 24], [5, 12, 24, 3]]

numbers_dict = {}
for key, value in zip(name_list, num_list):
    # 键不存在则创建空列表,存在则直接获取已有列表,追加当前值
    numbers_dict.setdefault(key, []).append(value)

print(numbers_dict)

方法二:使用collections.defaultdict

from collections import defaultdict

name_list =[225.85, 286.818, 238.8, 282.43, 238.522, 238.378, 233.989, 294.957, 238.522, 290.847, 238.8, 282.286, 290.847, 282.008, 282.43, 233.989, 225.85, 282.008, 294.957, 282.286, 286.818, 238.378, 229.961]
num_list =[[3, 24, 5, 12], [3, 12, 24, 5], [3, 12, 5, 24], [3, 5, 24, 12], [3, 5, 12, 24], [24, 3, 12, 5], [24, 3, 5, 12], [24, 12, 3, 5], [24, 12, 5, 3], [24, 5, 3, 12], [24, 5, 12, 3], [12, 3, 24, 5], [12, 3, 5, 24], [12, 24, 3, 5], [12, 24, 5, 3], [12, 5, 3, 24], [12, 5, 24, 3], [5, 3, 24, 12], [5, 3, 12, 24], [5, 24, 3, 12], [5, 24, 12, 3], [5, 12, 3, 24], [5, 12, 24, 3]]

# 自动为不存在的键创建空列表
numbers_dict = defaultdict(list)
for key, value in zip(name_list, num_list):
    numbers_dict[key].append(value)

# 可选:转换为普通字典
numbers_dict = dict(numbers_dict)

print(numbers_dict)

两种方法最终都会生成一个字典,其中每个键对应一个包含所有匹配num_list元素的列表,完整保留原始数据,不会出现覆盖问题。

内容的提问来源于stack exchange,提问作者Thaeer M Sahib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:07:02