gpt4 book ai didi

python - 基于python中嵌套字典中的键删除项目

转载 作者:太空狗 更新时间:2023-10-30 01:53:00 27 4
gpt4 key购买 nike

我有一个看起来像这样的字典:

{
'key1':
{
'a': 'key1',
'b': 'val1',
'c': 'val2'
},
'key2':
{
'a': 'key2',
'b': 'val3',
'c': 'val4'
},
'key3':
{
'a': 'key3',
'b': 'val5',
'c': 'val6'
}
}

我尝试根据键“a”删除嵌套字典中的元素以获得如下输出:

{
'key1':
{
'b': 'val1',
'c': 'val2'
},
'key2':
{
'b': 'val3',
'c': 'val4'
},
'key3':
{
'b': 'val5',
'c': 'val6'
}
}

我为它写了下面的代码片段:

for k in dict_to_be_deleted:
del k["a"]

我不断收到 Key Error: k not found。我也尝试了以下方法:

for i in dict_to_be_deleted:
for k,v in i.items():
if "a" in k:
del i[k]

我明白了

Attribute Error: str object has no attribute items

但它不应该是一个字典,因为 dict_to_be_deleted 是一个嵌套字典吗?我对此很困惑。我非常感谢这方面的任何指示。

最佳答案

一个简单的方法是使用 dict.pop()相反:

data = {
'key1':
{
'a': 'key1',
'b': 'val1',
'c': 'val2'
},
'key2':
{
'a': 'key2',
'b': 'val3',
'c': 'val4'
},
'key3':
{
'a': 'key3',
'b': 'val5',
'c': 'val6'
}
}

for key in data:
data[key].pop('a', None)

print(data)

哪些输出:

{'key1': {'b': 'val1', 'c': 'val2'}, 'key2': {'b': 'val3', 'c': 'val4'}, 'key3': {'b': 'val5', 'c': 'val6'}}

dict.pop() 的工作方式是首先检查键是否在字典中,在本例中为 "a",然后将其删除并返回它的值(value)。否则,返回一个默认值,在本例中为 None,它可以防止 KeyError

关于python - 基于python中嵌套字典中的键删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017281/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com