【问题标题】:Python - nested dictionary remove key and update dictionary namePython - 嵌套字典删除键并更新字典名称
【发布时间】:2021-10-28 09:56:08
【问题描述】:

我有一个包含列表的嵌套字典,并希望执行以下操作:

  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 也不起作用。 请问有人可以告诉我哪里出错了吗?

【问题讨论】:

  • C 和 D 在哪里?
  • 你能否对这个问题更清楚一点,并提供你尝试过的代码。

标签: python python-3.x list dictionary


【解决方案1】:

这是涉及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']}}

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2014-03-30
    • 2019-12-04
    • 2021-05-10
    相关资源
    最近更新 更多