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

如何在Python中合并两个列表生成含空值的新字典?

解决字典合并时多余键填充空值的问题

方法一:先初始化空值字典再更新

先创建一个包含所有key_values且值全为空字符串的字典,再用data_items中的值去覆盖对应位置的键。这种方法逻辑直观,不需要额外导入模块:

def merge_to_dict(data_items, key_values):
    # 初始化所有键为空字符串
    result = {key: '' for key in key_values}
    # 用配对好的键值对更新字典
    result.update(zip(key_values, data_items))
    return result

调用示例:

print(merge_to_dict([7, 9], [13, 26, 31]))
# 输出: {13: 7, 26: 9, 31: ''}

方法二:用itertools.zip_longest简化代码

Python标准库的itertools.zip_longest可以处理长度不一致的迭代器,指定fillvalue为空字符串后,直接转成字典即可:

from itertools import zip_longest

def merge_to_dict(data_items, key_values):
    return dict(zip_longest(key_values, data_items, fillvalue=''))

这个方法更简洁,zip_longest会自动把较短的data_items补全到和key_values一样的长度,空缺的位置用fillvalue填充,完美匹配需求。

为什么原方法不行?

zip()函数只会取两个迭代器中较短的那个长度进行配对,所以当key_values比data_items长时,多余的键会被直接丢弃,这就是你只得到前两个键值对的原因。上面两种方法都解决了这个长度不匹配的问题,确保所有键都被保留。

内容的提问来源于stack exchange,提问作者scarz.101

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:07:05