>>> s = {'abcd', 'abdd', 'acdd'}
>>> pat = re.compile('ab.d')
>>> map(lambda x:x.string,filter(None, map(pat.search,s)))
['abcd', 'abdd']
请注意,map在显微镜下比列表理解快。你知道吗
bhargav@bhargav:~$ python -m timeit "import re;s = {'abcd', 'abdd', 'acdd'};[el for el in s if re.search('ab.d', el)]"
100000 loops, best of 3: 4.59 usec per loop
bhargav@bhargav:~$ python -m timeit "import re;s = {'abcd', 'abdd', 'acdd'};pat = re.compile('ab.d'); map(lambda x:x.string,filter(None, map(pat.search,s)))"
100000 loops, best of 3: 4.21 usec per loop
循环集合中的所有元素,并对正则表达式进行筛选:
这可以使用^{} 和^{} 实现,如
请注意,
map
在显微镜下比列表理解快。你知道吗如您所见,使用
map
和filter
可以使它快0.38
微秒。你知道吗但是,如果考虑可读性orlp's list comprehension更好。(在这种情况下,这是另一种方法)
您可以在列表中使用
re.search
:相关问题 更多 >
编程相关推荐