将字典中的字符串与相似键组合

2024-05-19 01:41:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python数据处理中基于其他3个字典创建一个新的字典

我有3个字典,每个字典都有相似的ID,表示文档中的不同部分

比如说

dict1 = {'001': 'Dog', '002': 'Cat', '003': 'Mouse'}
dict2 = {'001': 'Dog2', '002': 'Cat2', '003': 'Mouse2'}
dict3 = {'001': 'Dog3', '002': 'Cat3', '003': 'Mouse3'}

我想组合相似键的所有值,因此我的愿望输出类似于此

combineDict = {'001' : 'Dog Dog2 Dog3', '002' : 'Cat Cat2 Cat3', '003' : 'Mouse Mouse2 Mouse3'}

是我干的

combineDict = {}
for k in dict1.keys():
    combineDict[k] = dict1[k] + " " + dict2[k] + " " + dict3[k]

但是,上述方法在处理大量文本时速度非常慢

无论如何,是否需要专业地编写此函数,以获得相同的结果并减少处理所需的时间

非常感谢:)


Tags: 字典cat数据处理dogmousecat2dict1cat3
1条回答
网友
1楼 · 发布于 2024-05-19 01:41:32

为了与您当前的方法保持一致,特别是将以下解决方案绑定到您总是有三个长度相等的词典这一事实上,该方法如下所示:

使用其中一个字典进行迭代,并创建一个新字典,该字典将以空格分隔的字符串形式保存这些值。最简单的方法是在list中收集它们,然后使用" ".join,这将为您提供以空格分隔的列表:

dict1 = {'001': 'Dog', '002': 'Cat', '003': 'Mouse'}
dict2 = {'001': 'Dog2', '002': 'Cat2', '003': 'Mouse2'}
dict3 = {'001': 'Dog3', '002': 'Cat3', '003': 'Mouse3'}


new_dict = {}

for key in dict1:
    new_dict[key] = " ".join([dict1[key], dict2[key], dict3[key]])

输出:

{'001': 'Dog Dog2 Dog3', '003': 'Mouse Mouse2 Mouse3', '002': 'Cat Cat2 Cat3'}

或者简单地作为字典理解:

res = {k: " ".join([dict1[key], dict2[key], dict3[key]]) for k in dict1}

相关问题 更多 >

    热门问题