该代码如何逆转Python中的字符串


def reverse(x):
    output = ""
    for c in x:
        output = c + output
    return output
print(reverse("Hello"))

此代码可以很好地逆转Python的字符串,我似乎不明白它为什么工作以及如何工作。

例如,如果我迭代一根字符串,通常它将从" H"开始迭代并打印,然后延伸到" O"。在这里怎么样,它倒退了?

如果将一些输出输出到循环中,则可以看到代码如何填充字符串。

def reverse(x):
    output = ""
    for c in x:
        output = c + output
        print(output)
    return output
print(reverse("Hello"))

因此,您可以看到它的工作原理:

H
eH
leH
lleH
olleH
olleH

因此,您将最后一个算到末尾,这就是您扭转它的方式。如果您在循环中切换以下行:

output = output + c 

然后订单不相反:

H
He
Hel
Hell
Hello
Hello

此循环跨越字符串的字符,对于每个字符 prepends 它到当前结果。

让我们跟踪output的值,因为我们越过字符(c值(:

c output
H H
e eH
l leH
l lleH
o olleH

每次字符进入循环时,都会将其附加到输出中。最初输出="

so tor迭代1:output ="

c = "H"
output = "H" + "" = "H"

迭代2:输出=" H"

c = "e"
output = "e" + "H" = "eH"

迭代3:输出=" EH"

c = "l"
output = "l" + "eH" = "leH"

迭代4:输出=" leh"

c = "l"
output = "l" + "leH" = "lleH"

迭代5:输出=" lleh"

c = "o"
output = "o" + "lleH" = "olleH"

因此,最终结果是" Olleh"

最新更新