touchpad
o / p: uea
为什么我只用元音得到o / p但是我想做相反的事情呢?
答案 0 :(得分:2)
试试这个。
def anti_vowel(t):
v = "aeiouAEIOU"
r=[t]
[r.append(r[-1].replace(l,'')) for l in v]
return r[-1]
答案 1 :(得分:2)
要使您的代码有效,您可以切换为使用concurrency
,或使用for-else
语句和in
如果 有元音匹配:
break
现在可以提供预期的输出! :)
如果您的效率稍高一些,可以使用def anti_vowel(t):
v = "aeiouAEIOU"
g = ""
for i in t:
for c in v:
if i == c:
break
else:
g += i
return g
生成器:
str.join
我们可以看到它的作品:
def anti_vowel(t):
v = "aeiouAEIOU"
return ''.join(c for c in t if c not in v)
请注意,使用>>> anti_vowel("umbrella")
'mbrll'
比in
更快,因为操作在for-loop
更加优化。它还产生更易读(或Pythonic)的代码。
哦,顺便说一下,我认为函数应该始终有输出 - 即使意图是low-level
输出,所以我使用了print
。