发布时间:2019-09-16 07:27:25编辑:auto阅读(2509)
import re
def fuzzyfinder(input, collection, accessor=lambda x: x):
"""
Args:
input (str): A partial string which is typically entered by a user.
collection (iterable): A collection of strings which will be filtered
based on the `input`.
Returns:
suggestions (generator): A generator object that produces a list of
suggestions narrowed down from `collection` using the `input`.
"""
suggestions = []
input = str(input) if not isinstance(input, str) else input
pat = '.*?'.join(map(re.escape, input))
regex = re.compile(pat)
for item in collection:
r = regex.search(accessor(item))
if r:
suggestions.append((len(r.group()), r.start(), accessor(item), item))
return (z[-1] for z in sorted(suggestions))
上一篇: Python的优点和缺点
下一篇: python高级视频教程免费下载
54115
40872
35383
31035
25923
25658
24104
19639
15706
15181
1935°
1777°
1869°
1949°
1942°
2123°
2070°
1894°
1976°
1963°