我几乎已经弄清楚了,但是有一件事。基本上,我想返回字符串without a vowel
(我猜这是一个常见的挑战)。这与我在CodeWars上所做的其他挑战类似,因此仍未完成。我在函数内有一个for循环。我调用该函数以返回值。
出于某种原因,我返回的是空值,或者说是“无”,但是通过打印我得到了想要的结果。在同一行和缩进。
这是针对Codewar的挑战,因此我需要返回值而不是,打印,记录(我知道)。我问了一个朋友,研究了几个小时,但没有任何帮助。
def disemvowel(string):
#aeiou
vowel = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
aList = list(string) #'' to [...]
for x in aList:
for y in vowel:
if x == y:
#print(x)
aList.remove(x)
print(''.join(aList)) # "Ths wbst s fr lsrs LL!"
return(''.join(aList)) # Nothing shows up here...
我希望通过返回返回"Ths wbst s fr lsrs LL!"
的输出,但得到None
。
https://www.codewars.com/kata/52fba66badcd10859f00097e/train/python来源^
要从字符串中删除元音,最快的方法是使用str.replace
。
def remove_vowels(msg):
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
for vowel in vowels:
msg = msg.replace(vowel, '')
return msg
使用列表理解:
def remove_vowels(msg):
return ''.join(c for c in msg if c.lower() not in {'a', 'e', 'i', 'o', 'u'})
实施例:
>>> remove_vowels("Lorem ipsum dolor sit amet.")
'Lrm psm dlr st mt.'
>> remove_vowels("This is it")
'Ths s t'
>>> remove_vowels("This website is for losers LOL!")
'Ths wbst s fr lsrs LL!'