如何遍历嵌套字典以查找给定元素为键的列表的特定值?

How to iterate through a nested dictionary to find a specific value given a list whose elements are keys?

提问人:Pavel 提问时间:7/14/2023 最后编辑:Andrej KeselyPavel 更新时间:7/14/2023 访问量:56

问:

我正在尝试编写一个接受两个参数的函数 - 一个嵌套字典和一个列表,其元素是键的子集(不考虑缺少键)。使用列表的元素,该函数必须遍历字典以查找并返回相应的值。因此,基本上列表是函数用来“遍历”字典以查找目标值的“路径”> def walk(dictionary, path)。我不能在代码中使用 map、filter 或 reduce。这是我正在学习的一门课程的编码任务,我对 Python 的了解非常有限。

所以,这里是测试字典和列表(=path):

city = {
        'Pine': {
            '5': 'School #42',
        },
        'Elm': {
            '13': {
                '1': 'Appartments #2, Elm st.13',
            },
        },
    }
   
path = ['Elm', '13', '1']
path = ['Pine', '5']

这是我目前正在研究的功能:

def walk(dictionary, path):
    key_select = getitem(path, len(path) - 1)

    for key, value in dictionary.items():
        if isinstance(value, dict):
            print(key)
            walk(value, path)
        else: 
            print(key)
        if key == key_select:
            print(value)
            
walk(city, path)

如果我将两个列表中的任何一个传递到函数中,我会得到“正确”的答案,但有几个问题:1)我需要返回一个值(而不是打印它),当我尝试这样做时,我得到“无”;2)我只需要返回一个与特定键相对应的值。那么我的问题是,我怎样才能修改函数,使其保留它的整体功能(即它遍历整个词典),而没有它所做的所有额外东西。谢谢。

python-3.x 字典 for 循环 嵌套值 迭代

评论


答: 暂无答案