具有python di的自动完成功能

2024-04-24 20:35:18 发布

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

在PHP中,我有一行matches = preg_grep('/^for/', array_keys($hash));它要做的是,它将获取$hash中的单词:fork、form等。在

在Python中,我有一个40万单词的dict。它的关键是我想在类似auto-complete的特性中呈现的单词(本例中的值没有意义)。如何才能从字典中返回与输入匹配的键?在

例如,如果我有

my_dic = t{"fork" : True, "form" : True, "fold" : True, "fame" : True}

我得到一些输入"for",它将返回一个"fork""form"的列表。在


Tags: formtrueforautohashkeysfork单词
3条回答

所以这不能直接回答你的问题,但是。。在

看起来你并不真的想要这种东西,你在寻找一个树状结构,对吗?在

然后,您可以遍历树中键入的每个字母(固定时间),并从树的该子节返回与该前缀匹配的单词。在

>>> my_dict = {"fork" : True, "form" : True, "fold" : True, "fame" : True}
>>> import re
>>> [s for s in my_dict if re.search('^for', s) is not None]
['fork', 'form']

regex的使用更普遍,因为您可以提供更复杂的搜索模式,如果只是关于前缀,则可以使用字符串方法:^{},例如:

^{pr2}$
>>> mydict={"fork" : True, "form" : True, "fold" : True, "fame" : True}
>>> [k for k in mydict if k.startswith("for")]
['fork', 'form']

这应该比使用正则表达式要快(如果您只是寻找单词的开头就足够了)。在

相关问题 更多 >