首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新defaultdict中的键值对

更新defaultdict中的键值对
EN

Stack Overflow用户
提问于 2018-07-20 11:09:05
回答 0查看 557关注 0票数 0

上面的dataframe是由以下代码生成的:

代码语言:javascript
复制
newCols = ['Book-1', 'Book-2', 'Similarity Score']

l1 = ['b1', 'b1', 'b2']
l2 = ['b2', 'b3', 'b3']
score1 = [0.95, 0.87, 0.84]

duplicateProductList = pd.DataFrame(columns=newCols)

duplicateProductList['Book-1'] = l1
duplicateProductList['Book-2'] = l2
duplicateProductList['Similarity Score'] = score1

print(duplicateProductList)

我使用以下代码从Pandas Dataframe(duplicateProductList (如上所示) )生成了一个字典:

代码语言:javascript
复制
from collections import defaultdict    

new_dict = {}

my_list = [(i,[a,b]) for i, a,b in zip(duplicateProductList['Book-1'], duplicateProductList['Book-2'], duplicateProductList['Similarity Score'])]
for (key, value) in my_list:
    if key in new_dict:
        new_dict[key].append(value)
    else:
        new_dict[key] = [value]

print(new_dict)

上面的代码片段生成以下字典:

代码语言:javascript
复制
{'b1':[['b2', 0.95], ['b3', 0.87]], 'b2':[['b3', 0.84]]}

相反,我想要生成以下字典:

代码语言:javascript
复制
{'b1':[['b2', 0.95], ['b3', 0.87]], 'b2':[['b1', 0.95],['b3', 0.84]], 'b3':[['b1', 0.87],['b2', 0.84]]}

有没有人可以帮我修改一下字典的理解,以得到上面的字典?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51434502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档