我正在尝试构建一个Python函数,该函数返回一个包含以下算法重复的其他所有字符的字符串:
Index position * 2 + 2
例如:Testing --> TTssssssiiiiiiiiiigggggggggggggg
下面是我的代码,但出现错误:
IndexError:字符串索引超出范围
版本A:
def string_expansion(input_string):
i = 0
while i < len(string):
i += 1
if input_string[::2] == string[i]:
return input_string[i] * (i * 2) + 2
第二个版本在我传递参数时不返回
版本B:
def string_expansion(input_string):
i = 0
while i < len(string):
if input_string[::2] == string[i]:
return input_string[i] * (i * 2) + 2
i += 1
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
如果我正确回答了您的问题,则需要在每次迭代期间构建并存储字符串值:
def string_expansion(input_string):
i = 0
str=""
while i < len(input_string):
str =str+input_string[i] * ((i * 2) + 2)
i=i+2
print(str)
string_expansion("testing")
答案 1 :(得分:0)
我会这样...
def string_expansion(input_string):
return ''.join([e[1]*(e[0]*2+2) for e in enumerate(input_string) if e[0]%2 == 0])
string_expansion('Testing')
'TTssssssiiiiiiiiiigggggggggggggg'
答案 2 :(得分:0)
def iter_tokens(inp):
for ind, ch in enumerate(inp):
if ind % 2 == 0:
yield ch * (ind * 2 + 2)
# Call this one
def str_exp(inp):
return ''.join(iter_tokens(inp))