我正在尝试构建一个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
当我传递参数时,第二个版本返回none
版本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
任何帮助将不胜感激。谢谢。
我会这样做的......
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'
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))