如何分析python字典中的列表值,添加额外的字典值来显示不同的键和共同的列表值计数?

2024-10-01 15:29:05 发布

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

我有一本大一点的字典,格式如下。我试图找到键和列表格式的值之间的相似性。在

data_dict = {623823: ['draintheswamp', 'swimming'], 856273: ['elect2015'], 8236472: [], 623526: ['yearmatters'], 72645: ['elect2015'], 723641: ['draintheswamp'], 712641: ['swimming'], 917265: ['elect2015', 'draintheswamp']}

我想输出两个(额外的字典值),显示每个键与之相关的键(如果找到相似性或null)以及该列表中相似值的数量。
字典中的列值将是 (键,[使用的文本],[相关的密钥,相关的文本的数量])

新词典结果外观的简单示例:

^{pr2}$

Tags: 文本列表data数量字典格式密钥相似性
1条回答
网友
1楼 · 发布于 2024-10-01 15:29:05

所以我想出了一个快速生成你所要求的字典的方法。为了简洁起见,我使用np.intersect1d方法快速计算dict值列表之间的共享项。在

import numpy as np

new_data = {} #new dict
for key in data_dict.keys():
    new_data[key] = () #set empty tuple
    x = [] #set empty list x
    y = [] #set empty list y
    for k, v in data_dict.items():
        if key == k: #don't count similarity on same key
            pass
        else:
            shared = np.intersect1d(data_dict[key],v) #all shared items
            if shared:
                for item in shared:
                    x.append(item) #add shared item to list x
                    y.append((k, len(shared))) # add k and number of shared items to list y
                new_data[key] = (list(set(x)),y) #update new dict
            else:
                pass #pass if no shared items found...

如果你有任何问题,评论没有回答,请让我知道。我希望这对你的项目有帮助。它也没有优化,因为它是一个快速和肮脏的程序来模仿你的要求。祝你好运!在

相关问题 更多 >

    热门问题