我下面的Codecademy網站的教程,問題是「定義一個函數調用anti_vowel,它有一個字符串,文本,輸入並返回全部拆除元音的文本Python中,我錯誤的函數來刪除字符串中的元音?
例如:anti_vowel(」嘿,你!「)應該返回」Hy Y!「。」
代碼:「它返回!
def anti_vowel(text):
textlist = list(text)
print textlist
for k in textlist:
if k in"aeiouAEIOU":
print k
textlist.remove(k)
return "".join(textlist)
的錯誤是「哎呀,再試一次就anti_vowel你的函數失敗(」嘿!看字)‘海蘭LK詞’的時候,它應該返回」 Hy lk Wrds!「。」
我不知道爲什麼仍然有一個額外的'o'在那裏?誰能告訴我是什麼原因造成的錯誤?謝謝!
因爲:1.'remove'只刪除其參數的* first *外觀;和2.你在迭代時改變列表的長度(這是一個壞主意)。 – jonrsharpe
謝謝@jornsharpe,你的觀點二非常重要。但是,如果.remove()僅刪除第一個外觀,爲什麼在錯誤的示例中:「look」將返回「lk」 – chenchenmomo
因爲(僅)其中兩個字母反覆出現是「o''s – jonrsharpe