首页 > 解决方案 > 如何将新字典添加到字典python中的现有键

问题描述

我有这个预定义的字典:

customMappingDict = {'Validated' : '',
                 'notValidated' : ''}

如果可能,我想将新字典(!?)添加到现有键作为其值,如:

customMappingDict = {'Validated' : 'Key: 'Value', Key1: 'Value'',
                 'notValidated' : 'Key: 'Value', Key1: 'Value''}

对于生成的字典,我想调用两个预先存在的键(Validated 和 notValidated)并从其值(!?)中循环键,如下所示:

for key in customMappingDict['Validated'].keys():
    pass

...

输出应该是:

key, key1

我试过的:

if condition:
    str1 = '{}'.format(provLst[0])
    customMappingDict['Validated']: dict[str1]= '{}'.format(provLst[1])
else:
    str2 = '{}'.format(provLst[0])
    customMappingDict['notValidated']: dict[str2] = '{}'.format(provLst[1])

我在 PyCharm 中的穿着:

Class 'type' does not define '__getitem__', so the '[]' operator cannot be used on its instances

标签: python

解决方案


使用collections.defaultdict将为您省去很多麻烦。的想法defaultdict是创建一个具有默认值的字典。在这种情况下,默认值也将是一个字典。

你可以这样做:

from collections import defaultdict


customMappingDict = defaultdict(dict)
if condition:
    str1 = '{}'.format(provLst[0])
    customMappingDict['Validated'][str1] = f'{provLst[1]}'
else:
    str2 = '{}'.format(provLst[0])
    customMappingDict['notValidated'][str2] = f'{provLst[1]}'

旁注:与清洁剂f{provLst[0]}相同'{}'.format(provLst[0])


推荐阅读