簡體   English   中英

在for循環中反轉字符串

[英]Reversing string in a for-loop

我有以下 function:

s = 'hello'
rev = ''

for char in s:
    rev = char + rev
return rev

為什么上面的 for 循環反添加字符? 我嘗試使用rev += char並以原始順序返回字符串s 視頻中提到了這一點,他們沒有正確解釋,只是說“Python 的 for 循環字符串不能那樣工作”。 我想知道它為什么會這樣,所以以后我會更傾向於避免這些錯誤。

另一個問題是,我可以在列表的 for 循環中實現這種類型的行嗎?它會與列表相反嗎? 因為列表是可變的。

字符串上的+運算符表示不可交換的連接。 所以char + revrev + char是有區別的。

在前面連續添加下一個字符可以有效地反轉字符串。

在您擁有的循環中,您的 for 循環定義為:

s = 'happy'
rev = ''

for char in s:
    rev = ch + rev

如果我們通過前幾次迭代來查看它,我們會得到:h ah pah ppah yppah

這是因為當您更新變量 rev 時,您正在通過定義在 rev 前面添加下一個字符 (char)。

rev = NEW CHARACTER + CURRENT REV 所以看看最后的迭代,我們添加 y,你正在添加:

rev = NEW CHARACTER (Y) + CURRENT REV (PPAH),基本上說明您將 PPAH 添加到字母 y,而不是將 y 添加到 PPAH。

通過交換 ch 和 rev 可以輕松修復循環,使其成為:

for char in s:
    rev = rev + char

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM