[英]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 + rev
和rev + 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.