【发布时间】:2016-04-01 02:18:15
【问题描述】:
代码如下:
vowels = ['a','e','i','o','u']
def anti_vowel(text):
tlength = len(text)
words = []
result = ""
for word in range(len(text)):
words.append(text[word])
print words
for index, word in enumerate(words):
if word.lower() in vowels:
words.pop(index)
for old_word in words:
result += str(old_word)
return result
print anti_vowel("Hey look words!")
预期结果:“Hy lk wrds!” 明显结果:“Hy lok words!”
我无法弄清楚为什么循环会跳过列表单词中索引 5 上的“o”。我知道我可以通过将非元音单词附加到列表并将它们组合来做到这一点,但我想知道如何获得上述代码所需的结果。
【问题讨论】:
-
我的输出是->
Hy lok wrds! -
您正在修改
words,同时对其进行迭代。 -
在使用
str转换之前old_word是什么类型? -
如果
vowels都是小写的,为什么要和大写比较? -
@PeterWood 我应该在调用函数的语句中添加一个 raw_input() 而不是硬编码。