我需要把这个句子的元音去掉。 但是它应该省略单个元音char,比如I和a
如何在输出中包含单元音字符
vowels = ('a', 'e', 'i', 'o', 'u', 'A', 'I', 'E', 'O', 'U')
def sms_encoding(data):
list1=data.split()
list2=''
list3=''
for i in range(0,len(list1)):
if len(list1[i])==1:
list2+=(list1[i])
if len(list1[i])!=1:
for char in data:
if char in vowels:
data = data.replace(char, '')
list3=list2+(data)
return list3
data="a Have a nice day"
print(sms_encoding(data))
输出为
a Hv nc dy
使用
split
创建一个list
,其中每个element
都是一个单词。然后可以使用generator-expression
删除words
,它们是vowels
。我们还需要使用str.join
将单词连接在一起,每个单词之间留一个空格这给我们留下了一个简洁的单行解决方案:
在解释器中的测试表明它是有效的:
或者,如果您想保留单字符元音,但删除单词中的元音,您可以使用
re.sub
,并使用this regex on regex101所以这会使你的功能类似于:
当测试时,它的工作方式正好相反:
相关问题 更多 >
编程相关推荐