首页 > 解决方案 > Python - 嵌套字典删除键并更新字典名称

问题描述

我有一个嵌套字典,其中包含一个列表,并且想要执行以下操作:

  1. 将字典名称更新为A, B, C,D而不是dict1,dict2
  2. key3从字典中删除它的值

这是当前输入示例:

{'dict_1': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']} 'dict_2': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']}}

期望的输出:

{'A': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']} 'B': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']}}

我曾尝试使用 ascii 小写来更改字母,但这不起作用。要删除 key3 我尝试使用 del 和 pop 也不起作用。请问有人可以让我知道我哪里出错了吗?

标签: pythonpython-3.xlistdictionary

解决方案


这是涉及ascii values和的解决方案.pop()

尝试这个 :

nested_dict = {
    'dict_1': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']},
    'dict_2': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']}}

key_name = 'A'

new_nested_dict = {}

for k, v in nested_dict.items():
    v.pop('key3', None)
    new_nested_dict[key_name] = v
    key_name = chr(ord(key_name) + 1)

print(new_nested_dict)

输出:

{'A': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']}, 'B': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']}}

推荐阅读