Python:将列表转换为dict键,用于多维dict,并进行异常处理

2024-06-16 17:53:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多维字典的集合,如下所示

dict1 = {'key21':{'key31': {'key41':val41}, 'key32':{'key42':val42}}}

先验,我不知道字典的尺寸。我收集了大量可能的密钥,每个字典可能包含也可能不包含这些密钥。即使有钥匙,也不一定要按相同的顺序排列。在

如果我从集合中创建一个可能的键值列表,比如

^{pr2}$

如何将列表作为键传递,以便可以获得dict1['key21']['key32']['key42']的值,但异常处理类似于get命令


Tags: 列表字典尺寸密钥键值钥匙先验dict1
1条回答
网友
1楼 · 发布于 2024-06-16 17:53:17

您可以迭代地查询字典,如下所示:

dict1 = {'key21':{'key31': {'key41':41}, 'key32':{'key42':42}}}
list1 = ['key21', 'key32', 'key42']
#list1 = ['key21', 'key32', 'key42', 'bad-key'] # Test bad key
item = dict1
try:
    for key in list1:
            item = item[key]
except (KeyError, TypeError):
    print None
else:
    print item

KeyError处理密钥不存在的情况。 TypeError处理该项不是字典的情况,因此无法进行进一步的查找。这是一个很容易漏掉的有趣案例(我第一次做了)。在

相关问题 更多 >