从字符串中,如何只返回不以元音开头的单词?

2024-10-02 22:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子,例如“狗是好宠物”

我只想返回以辅音开头的单词。[“狗”,“好”,“宠物”]作为一个列表

def consonant_first(newstr):
    for char in newstr.split():
        if char[0] in newstr.split() ==  vowels1:
            return newstr.split() 
print(newstr)

Tags: in宠物列表forifdef单词first
2条回答

以下是一个使用迭代器的解决方案,以防您计划处理大量文本:

import re

def find_consonant_words(text: str):
    vowels = set("aeiou")

    for m in re.finditer('\S+', text):
        w = m.group(0)
        if w[0].lower() not in vowels:
            yield w

string = "A very long text: a dog is a good pet"

for w in find_consonant_words(string):
    print(w)

# get it all as a list
consonant_words = list(find_consonant_words(string))
print(consonant_words)

输出:

very
long
text:
dog
good
pet
['very', 'long', 'text:', 'dog', 'good', 'pet']

只需测试列表中的第一个字母:

s = "A dog is a good pet"

def consonant_first(newstr):
    return [word for word in s.split() if  word[0].lower() not in 'aeiou']

print(consonant_first(s))

确保针对所有情况进行测试,以便捕获A。你知道吗

结果:

['dog', 'good', 'pet']

相关问题 更多 >