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

如何将含重复键的两个列表合并为字典并保留键的首个值

保留重复键首个值的字典合并方法

当使用dict(zip(keys, values))合并含重复键的列表时,后续重复键会覆盖之前的条目,导致最终字典只保留每个键的最后一个对应值。要保留首个值,可通过以下方法实现:

方法一:遍历键值对,仅新增未存在的键

手动遍历键值对,仅当键未在字典中时才存入对应值,避免后续重复键覆盖首个值:

keys = ['HT202039',
 'HT202039',
 'HT202039',
 'HT202039',
 'HT202039',
 'HT202039',
 'HT202039',
 'HT206627',
 'HT212048',
 'HT203905']
    
values = [0.9527516324191851,
 0.9415256727935831,
 0.9393113073236541,
 0.9258447486583915,
 0.8796238049268982,
 0.8760262341331504,
 0.8722470299246854,
 0.48326164037445074,
 0.4720068674708344,
 0.46248035502320567]

dictionary = {}
for key, val in zip(keys, values):
    if key not in dictionary:
        dictionary[key] = val

运行上述代码后,得到的结果符合预期:

{'HT202039': 0.9527516324191851, 'HT206627': 0.48326164037445074, 'HT212048': 0.4720068674708344, 'HT203905': 0.46248035502320567}

方法二:利用dict.fromkeys初始化后填充

先通过dict.fromkeys创建包含所有键的字典(初始值为None),再遍历键值对填充未赋值的键:

dictionary = dict.fromkeys(keys)
for key, val in zip(keys, values):
    if dictionary[key] is None:
        dictionary[key] = val

该方法与方法一逻辑一致,最终结果相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:44:57