首页 > 后端开发 > Python教程 > 为什么我的递归 Python 函数在嵌套字典中搜索文件时不返回任何内容?

为什么我的递归 Python 函数在嵌套字典中搜索文件时不返回任何内容?

Mary-Kate Olsen
发布: 2024-11-16 08:29:02
原创
632 人浏览过

Why Does My Recursive Python Function Return None When Searching for a File in a Nested Dictionary?

Python 中返回 None 的递归函数

问题

在提供的 Python 代码中,名为 get_path 的递归函数正在尝试搜索文件 ( rqfile)在嵌套字典(dictionary)中。但是,当找到文件的路径并需要返回时,该函数将返回 None。代码如下:

1

2

3

4

5

6

7

8

def get_path(dictionary, rqfile, prefix=[]):

    for filename in dictionary.keys():

        path = prefix + [filename]

        if not isinstance(dictionary[filename], dict):

            if rqfile in str(os.path.join(*path)):

                return str(os.path.join(*path))

        else:

            get_path(directory[filename], rqfile, path)

登录后复制

解决方案

要解决此问题,函数需要返回递归调用的结果。默认情况下,如果没有显式 return 语句,Python 函数将返回 None。要返回正确的路径,请将函数的最后一行替换为以下内容:

1

return get_path(directory[filename], rqfile, path)

登录后复制

此修改可确保函数返回在递归调用期间找到的路径。这是更新后的代码:

1

2

3

4

5

6

7

8

def get_path(dictionary, rqfile, prefix=[]):

    for filename in dictionary.keys():

        path = prefix + [filename]

        if not isinstance(dictionary[filename], dict):

            if rqfile in str(os.path.join(*path)):

                return str(os.path.join(*path))

        else:

            return get_path(directory[filename], rqfile, path)

登录后复制

以上是为什么我的递归 Python 函数在嵌套字典中搜索文件时不返回任何内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板