尝试使用递归将文件路径拆分为元组

Trying to split file path into a tuple using recursion

我正在尝试进行递归练习,但遇到了一个问题。我需要拆分一个 文件地址到一个元组中,我最终在一个元组中得到一个元组。 下面是我想出的,当我测试它时,它 returns 这个:

输入路径:C:/Users:/Games

('C:', ('Users:', 'Games'))

我要:('C:','Users:','Games')

def split_path(s):
    path = ()

        if s.find("/") == -1:
        path= (s)
    else:
        location = s.find("/")
        path += (s[:location],)
        path += (split_path(s[location+1:]),)
return path

您可能希望将靠近函数最后一行的行更改为以下内容:

path.extend(split_path(s[location+1:]))

顺便说一句,你为什么不使用类似的东西:

path = s.split('/')

你真的很接近。仔细看看你的最后一行:

path += (split_path(s[location+1:]),)

您将元组函数的 return 值放入另一个元组中。

编辑补充:我刚刚注意到一个非常细微的错误,可能导致您将 return 值放入元组中:

path = (s)

应该是

path = (s,)

我会这样写:

def split_path(s):
    index = s.find('/')
    if index == -1:
        return (s,)
    else:
        return (s[:index],) + split_path(s[index+1:])