Python: 使用递归实现 split()

Python: implement split() using recursion

最近我想弄清楚一个实现split()函数的问题,objective是完成一个函数,将带有分隔符(例如“-”)的字符串或带有“/”的路径字符串拆分为递归方式的单词列表。

inputString = "Hello-World"
expectedOutput = ["Hello", "World"]

尝试了使用 find() 的解决方案,是否还有其他不使用线性函数的可能解决方案?

def splitString(str, delim):
  list=[]
  i=str.find(delim)
  if i!=-1:
    list.append(str[0:i])
    newStr=str[i+1:]
    list.extend(splitString(newStr, delim))
  else:
    list.append(str)
  return list

Python中的函数和变量最好不要使用驼峰命名法。无论如何,您可以使用递归将字符串拆分为单词,如下所示:

input_string = "Hello-World"
words = []

def split_string(string, delim, head=''):
    if string:
        if string[0] == delim:
            words.append(head)
            return split_string(string[1:], delim)
        else:
            return split_string(string[1:], delim, head + string[0])
    else: 
        words.append(head)
        return ''

split_string(input_string)
print(words)