首页 > 解决方案 > 如何在嵌套字典中附加值

问题描述

dictnry={token1:{1:freq1,2:freq1a},
        ,token2:{1:freq2,2:freq2a,3:freq2b}
        ,token3:{3:freq4}}

我如何循环使用 int:dict 作为键:值对 的字典并将一个新字典(例如:{5:freq5}intoken1{1:freq11}intoken3)附加到它的辅助现有字典中

for loop in dictnry:
   condition==true:
      for loop in sec_dictnry:
         p={5:freq5}  #p IS THE NEW DICTIONARY & 5 and freq5 will be substituted with variables
         dictnry[token1].append_for_dictionary_function_or_something(p) #WHAT DO I DO IN THIS LINE

dictnry={token1:{1:freq1,2:freq1a,5:freq5},
        ,token2:{1:freq2,2:freq2a,3:freq2b}
        ,token3:{3:freq4,1:freq11}}

标签: pythondictionaryappend

解决方案


您可以为要添加的内容创建另一个字典:

import json

d = {
    "token1": {
        1: "freq1",
        2: "freq1a",
    },
    "token2": {
        1: "freq2",
        2: "freq2a",
        3: "freq2b",
    },
    "token3": {
        3: "freq4",
    }
}

print("Before:")
print(json.dumps(d, indent=4))

key_entry_to_add = {
    "token1": {
        5: "freq5",
    },
    "token3": {
        1: "freq11",
    }
}

for key, entry in key_entry_to_add.items():
    entry_key, entry_val = next(iter(entry.items()))
    d[key][entry_key] = entry_val

print("After:")
print(json.dumps(d, indent=4, sort_keys=True))

输出:

Before:
{
    "token1": {
        "1": "freq1",
        "2": "freq1a"
    },
    "token2": {
        "1": "freq2",
        "2": "freq2a",
        "3": "freq2b"
    },
    "token3": {
        "3": "freq4"
    }
}
After:
{
    "token1": {
        "1": "freq1",
        "2": "freq1a",
        "5": "freq5"
    },
    "token2": {
        "1": "freq2",
        "2": "freq2a",
        "3": "freq2b"
    },
    "token3": {
        "1": "freq11",
        "3": "freq4"
    }
}

推荐阅读