嵌套字典的划分

2024-09-27 04:27:43 发布

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

我有两本字典。一个是嵌套字典,另一个是通用字典。我想做一些划分:

dict1 = {'document1': {'a': 3, 'b': 1, 'c': 5}, 'document2': {'d': 2, 'e': 4}}

dict2 = {'document1': 28, 'document2': 36}

我想用dict1的内部字典值除以dict2中匹配文档的值。预期输出为: 在此处输入代码

dict3 = {'document1': {'a': 3/28, 'b': 1/28, 'c': 5/28}, 'document2': {'d': 2/36, 'e': 4/36}}

我尝试使用two for循环来运行每个字典,但是值会重复多次,我不知道如何修复这个问题?有人知道如何实现这个目标吗?我会很感激的!``在


Tags: 代码文档目标for字典two我会dict1
3条回答

在一行中,使用嵌套字典理解:

dict3 = {doc_key: {k: (v/doc_value) for k, v in dict1[doc_key].items()} for doc_key, doc_value in dict2.items()}

你可以用这本词典来理解。在

dict3 = {} # create a new dictionary


# iterate dict1 keys, to get value from dict2, which will be used to divide dict 1 values

for d in dict1:
       y  = dict2[d] 
       dict3[d] = {k:(v/y) for k, v in dict1[d].items() }

您可以尝试以下代码

dict1 = {'document1': {'a': 3, 'b': 1, 'c': 5},
         'document2': {'d': 2, 'e': 4}}

dict2 = {'document1': 28, 'document2': 36}

for k,v in dict1.items():
    for ki,vi in v.items():
        dict1[k][ki] /= dict2[k]
print(dict1)
# output
#{'document1': {'a': 0.10714285714285714, 'b': 0.03571428571428571, 'c': 0.17857142857142858}, 
#'document2': {'d': 0.05555555555555555, 'e': 0.1111111111111111}}

相关问题 更多 >

    热门问题