如何在python中从列表中删除没有元音的单词

2024-09-24 00:28:47 发布

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

vowel = ['a','e','i','o','u']
my_list = ['hbyl','hawk','ibzj','hcxk','gawk']

在我的单子上。如果单词没有一个元音。从列表中删除单词

for word in my_list:
    if word does not include at least one vowel:
        my_list.remove(word)

print (my_list)
['hawk','ibzj','gawk']

Tags: in列表formy单词listword单子
3条回答

迭代时不应删除元素。相反,构建一个新的列表,最好使用列表理解:

vowel = ['a','e','i','o','u']
my_list = ['hbyl','hawk','ibzj','hcxk','gawk']

new_my_list = [word for word in my_list if any(v in word for v in vowel)]

从本质上说,列表理解说的是“包括任何给定的词,只有当有任何元音在这个词。”

这应该管用!:)

vowel = ['a','e','i','o','u'] 
my_list = ['hbyl','hawk','ibzj','hcxk','gawk']
vowset = set(vowel)
[word for word in my_list if vowset.intersection(word)]

可以将函数filterfalse()与set方法isdisjoint()一起使用:

from itertools import filterfalse

vowel = ['a','e','i','o','u']
my_list = ['hbyl','hawk','ibzj','hcxk','gawk']

vowel= set(vowel)
list(filterfalse(lambda x: vowel.isdisjoint(x), my_list))
# ['hawk', 'ibzj', 'gawk']

相关问题 更多 >