[英]Split() function on a single character returns an array with 2 empty strings?
[英]How to create a recursive function that returns a copy of a single parameter (a list of strings), but with every character duplicated in each place?
基本上,我需要编写一个递归函数,该函数需要一个字符串列表,然后返回一个字符串列表,每个字符串中的每个字符都重复/加倍。
例如,doubleStringList(['I','love','overflow'])将返回['II','lloovvee','oovveerrffllooww']。
我决定将其分为两个递归函数。 我已经做了一个函数,该函数返回带有双倍字符的字符串:
def doubleCharacter(seq):
if len(seq) == 0:
return seq
else:
return (seq[0] * 2) + doubleCharacter(seq[1:])
例如,输入doubleCharacter(“ overflow”)将返回'oovveerrffllooww'
我正在尝试创建第二个递归函数,该函数使用第一个递归函数,但将字符串列表作为参数而不是单个字符串。 例如:
def doubleStringList(sList):
if len(sList) == 0:
return sList
else:
return doubleCharacter(sList[0]) + doubleStringList(sList[1:])
从理论上讲,如果我输入doubleStringList([“ overflow”,“ is”,“ great”]),它应该返回[“ oovveerrffllooww”,“ iiss”,“ ggrreeaatt”]。 如果有人可以帮助我找出该代码,我将不胜感激。
错误消息提供了一个重要线索:
TypeError: can only concatenate str (not "list") to str
所以,最后一行应该是
return [doubleCharacter(sList[0])] + doubleStringList(sList[1:])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.