python - 如何计算字典中的常见值?
问题描述
如何计算两个字典有多少共同值?
它实际上比这要复杂一些:
d1 = {'1':['4','2','3'], '2':['4','3',], '3':['4','6','7']}
d2 = {'1': ['val1','val2'], '2': ['val1', 'val3', 'val4'], '4': ['val1', 'val2', 'val3', 'val4'], '6': ['val2']}
d3 = {}
我想知道有多少“vals”,比如“1”和“2”,有共同点。然后我查看第二个字典,因为 1 和 2 都包含“val1”,所以我创建了一个新字典d3 = {'val1' : 1}
- 从评论中复制
让我澄清一下,数字可以是两个字典的一部分,但 vals 只在第二个字典中。除了这两个字典之外,我的函数基本上只接受一个参数,所以假设我们的参数是“1”。它应该查看第一个字典,查看该列表,然后在第二个字典中找到这些值(作为键),然后找到 d1 中的 '1' 及其值在 d2 中的共同点。所以'1'和4有'val1'和'val2'共同点,'1'和'2'有'val1'共同点,'1'和'3'没有共同点
解决方案
像这样的东西?
d1 = {'1':['4','2','3'], '2':['4','3',], '3':['4','6','7']}
d2 = {'1': ['val1','val2'], '2': ['val1', 'val3', 'val4'], '4': ['val1', 'val2', 'val3', 'val4'], '6': ['val2']}
d3 = {}
def find_common_element(foo):
result = {}
if foo in d1 :
for elem in d1[foo]:
if str(elem) in d2 :
common = set(d2['1']) & set(d2[str(elem)])
result[str(elem)] = common
return result
print("check 1")
print(find_common_element('1'))
print("check 2")
print(find_common_element('2'))
print("check 3")
print(find_common_element('3'))
输出 :
check 1
{'4': {'val2', 'val1'}, '2': {'val1'}}
check 2
{'4': {'val2', 'val1'}}
check 3
{'4': {'val2', 'val1'}, '6': {'val2'}}
推荐阅读
- powershell - 找不到powershell dll方法
- html - Thymeleaf 背景图像 URL 的问题
- laravel - 如何在挂载的组件中通过 axios 调用获取数据?
- azure - 具有相同名称的多个 Azure VM 基础映像
- javascript - 如何检索 API 调用的响应标头数据
- ionic-framework - 没有模块文件的离子生成页面
- java - 从 Spring 端点返回网页正文
- html - 导航栏外固定位置的 Bootstrap 4 下拉菜单折叠(移动/小屏幕)
- android - 在 android studio 中使用 .so 文件
- sql - 如何在雪花的 unpivot 函数中使用别名?