使用“for”来增加i的值?

2024-09-30 22:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个代码,输出像aaabbb这样的a3b4字符。 对于短行,我可以自己编写代码,比如I+2、I+4,但我希望接收与a3b4相同的输入值,并将与a2b3c6a2相同的值作为abbccaa打印出来

我编写的代码只识别四个字符串并提取它们。 我认为我们需要自动增加我可以识别的值,但我不知道如何在这里编写代码。 我应该如何改进

s_list=list(input("Extracting?"))
i=0
def extracting(s_list):
    for i in range(0,len(s_list),2):
        result = s_list[i]*int(s_list[i+1])
        result += s_list[i+2]*int(s_list[i+3])
        return result

a=extracting(s_list)
print(a)

Tags: 字符串代码forinputdefresult字符list
1条回答
网友
1楼 · 发布于 2024-09-30 22:25:25

问题是您总是在第一次迭代时返回。相反,您需要从循环体中的每个中间结果中累积最终结果。所以你可以这样做:

def extracting(s_list):
    result = []
    for i in range(0,len(s_list),2):
        result.append(s_list[i]*int(s_list[i+1]))
    return ''.join(result)

另外请注意,实际上,将输入转换为liststr对象也是序列,并且支持在s_list上使用的所有必要操作。在任何情况下,这里有一个厚脸皮的,一行,只是为了好玩:

>>> s = 'a2b3c6a2'
>>> ''.join([x*i for x, i in zip(s[::2], map(int, s[1::2]))])
'aabbbccccccaa'

相关问题 更多 >