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