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

时间:2015-02-25 23:18:04

标签: python recursion tuples

我正在尝试进行递归练习而且我遇到了问题。我需要拆分一个 将文件地址转换为元组,最终在元组中得到一个元组。 以下是我的想法,当我测试它时,它会返回:

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

('C:',('用户:','游戏'))

我想要:('C:','用户:','游戏')

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

2 个答案:

答案 0 :(得分:2)

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

path.extend(split_path(s[location+1:]))
顺便问一下,你为什么不使用类似的东西:

path = s.split('/')

答案 1 :(得分:1)

你真的很亲密。仔细看看你的最后一行:

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

你将函数的返回值(一个元组)放在另一个元组中。

编辑添加:我刚注意到一个非常微妙的错误,可能会导致您将返回值放在元组中:

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:])