2024-04-19 21:27:53 发布
网友
自动完成以前列表中的单词。该列表是通过用户输入获得的
快乐、懒惰、消瘦
然后我想把它存储到一个列表中,这个列表将成为一个数据库
我将执行与之前相同的输入,更新版本,它将使用之前创建的列表,并将自动完成用户开始写入的任何标记
如果用户输入L,所有带L的单词都会出现。懒惰、可爱、失败者
事实上,stackoverflow的标签使用了我想要的版本
从“我只是为了好玩而制作一个玩具”到“我现在需要答案,它将投入生产”,这里有一些建议:
最简单的代码是查找以当前文本开头的所有字符串
dictionary = ['happy', 'lazy', 'skinny'] input_so_far = 'L' suggestions = [ word for word in dictionary if word.lower().startswith(input_so_far.lower()) ]
如果您想要简单的代码,但需要一个能够处理严肃字典的半严肃的解决方案,那么您需要研究一些适当的数据结构,比如B树,或者
。。。如果数据库中有文本(例如PostGreSQL),则可能有支持文本搜索的内置索引或插件。但是如果您需要最通用和/或性能最好的解决方案
use a dedicated textual search capability例如Lucene。有趣的是,文本自动完成是人们经常做的事情,因此处理文本和快速查找的工具非常常见,而且非常好
编辑:作为后续,因为看起来您正在寻找一种在简单终端中实现这一点的方法,请查看this other question以获得有关如何使用用户输入实现响应的建议。并非所有这些解决方案都内置了自动完成功能(有些可能),重点在于如何获得输入以及如何处理我上面建议的方法的输出
从“我只是为了好玩而制作一个玩具”到“我现在需要答案,它将投入生产”,这里有一些建议:
最简单的代码是查找以当前文本开头的所有字符串
如果您想要简单的代码,但需要一个能够处理严肃字典的半严肃的解决方案,那么您需要研究一些适当的数据结构,比如B树,或者
。。。如果数据库中有文本(例如PostGreSQL),则可能有支持文本搜索的内置索引或插件。但是如果您需要最通用和/或性能最好的解决方案
use a dedicated textual search capability例如Lucene。有趣的是,文本自动完成是人们经常做的事情,因此处理文本和快速查找的工具非常常见,而且非常好
编辑:作为后续,因为看起来您正在寻找一种在简单终端中实现这一点的方法,请查看this other question以获得有关如何使用用户输入实现响应的建议。并非所有这些解决方案都内置了自动完成功能(有些可能),重点在于如何获得输入以及如何处理我上面建议的方法的输出
相关问题 更多 >
编程相关推荐