使用python在列表中输入部分单词来查找单词

2024-09-29 23:31:28 发布

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

给出清单:

my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']

我想在列表中找到与“****”匹配的单词(“*”是任意字母)。它应该返回“barrow”、“yellow”和“mellow”(单词包含在列表中,由六个字母组成,最后两个字母是“ow”)


Tags: 列表my字母greenred单词listyellow
3条回答

试试这个:

>>> new_list = [w for w in my_list if (len(w) == 6 and w[-2:] == 'ow')]
>>> new_list
['barrow', 'yellow', 'mellow']

[x for x in my_list if x.endswith('ow') and len(x) == 6]

这使用了一个列表理解,它接受以“ow”结尾的my_list的所有元素,长度为6,这正是您想要的。对于更一般的解决方案,您可以构建一个与所需字符串匹配的regex re,并使用re.match()作为条件

解决问题的另一种方法是使用fnmatch,前提是干草堆是一个字符串列表。如果不是这样,您可能需要对字符串进行预转换

>>> import fnmatch
>>> my_list = [2345, 3245, 2343, 8746]
>>> fnmatch.filter(map(str, my_list), "2*4*")
['2345', '2343']
>>> my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
>>> fnmatch.filter(map(str, my_list), "*ow")
['barrow', 'yellow', 'mellow']

相关问题 更多 >

    热门问题