def anti_vowel(text):
a = []
for i in str(text):
a.append(i)
print a
v = "aeiouAEIOU0"
for p in v:
for e in a:
if p == e:
a.remove(p)
print a
d = ""
for w in a:
d = d + str(w)
return d
答案 0 :(得分:0)
问题是您在迭代同一个列表时从列表中删除元素。循环将“失去跟踪”其在列表中的当前位置,从而跳过一些元素。
不是先将所有字母添加到列表中,然后删除元音字母,而应首先添加 not 元音的字母。您可以使用列表推导在一行中执行此操作,然后使用''.join
将其连接到字符串:
def anti_vowel(text):
return ''.join(a for a in text if a not in "aeiouAEIOU0")
这大致相当于
d = ""
for a in text:
if a not in "aeiouAEIOU0":
d += a