如何将字典中各键对应等长字符串列表按位拼接生成新字典
实现字典值按索引拼接合并的方案
核心思路
- 无需提前获知原字典的键数量,直接通过
dict.values()获取所有值列表 - 用
zip(*dict.values())将不同列表的同索引元素打包为元组 - 对每个元组调用
'_'.join()完成下划线拼接 - 最后将结果组装为仅含单个键的新字典即可
代码实现
# 输入示例 dict_old = { 'a': ['a1', 'a2'], 'b': ['b1', 'b2'] } # 核心逻辑,适配任意键数的等长列表值字典 dict_new = { 'c': ['_'.join(group) for group in zip(*dict_old.values())] } print(dict_new) # 输出:{'c': ['a1_b1', 'a2_b2']}
补充说明
如果不确定原字典所有值的列表长度是否完全一致,可引入itertools.zip_longest替换zip,指定填充值避免截断:
from itertools import zip_longest dict_new = { 'c': ['_'.join(group) for group in zip_longest(*dict_old.values(), fillvalue='')] }
内容的提问来源于stack exchange,提问作者roy_wang
相关产品推荐
相关产品推荐

