繁体   English   中英

如何创建一个递归函数以返回单个参数(字符串列表)的副本,但每个字符在每个位置都重复?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM