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)
最近我想弄清楚一个实现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)