进入部分查找使用python表中的单词:给出的名单他们
my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
我想找到这个列表,将匹配“****流”(“*”里面的话是任何字母)。这应返回“手推车”,“黄色”和“醇香”(包括在泰德名单的话,由六个字母,其最后两个字母是“嗷嗷”形成)
进入部分查找使用python表中的单词:给出的名单他们
my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
我想找到这个列表,将匹配“****流”(“*”里面的话是任何字母)。这应返回“手推车”,“黄色”和“醇香”(包括在泰德名单的话,由六个字母,其最后两个字母是“嗷嗷”形成)
另一种方式来处理你的问题是使用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']
试试这个:
>>> 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]
这使用一个列表理解,它采用my_list
的所有元素,以'ow'结尾,长度为6,这正是您想要的。为了更广泛的解决方案,你将建立一个正则表达式re
你想要的字符串相匹配,并使用re.match()
为条件
这适用于我发布的示例。在这种情况下它是否也能起作用?:my_list = [2345,3245,2343,8746]。我想找到my_list中的数字[2 * 4 *](2345,2343) – Thon
您可以使用正则表达式:
>>> import re
>>> my_list = ['barrow', 'yellow', 'green', 'red', 'mellow']
>>> [e for e in my_list if re.search(r'....ow', e)]
['barrow', 'yellow', 'mellow']
>>> [e for e in my_list if re.search(r'2\d4\d', str(e))]
[2345, 2343]
我会发布一个秒一个答案,但正如一个侧面说明,你应该避免使用'list'作为变量名称,因为它已经是Python中的一种类型了 –
这不是一个代码写入服务;你试过了什么,究竟是什么问题呢? – jonrsharpe
我知道。我一直在研究,我不知道该如何面对它。 – Thon