完成之前列表中的单词

2024-04-19 21:27:53 发布

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

自动完成以前列表中的单词。该列表是通过用户输入获得的

  1. 用户输入识别它们的单词

快乐、懒惰、消瘦

  1. 然后我想把它存储到一个列表中,这个列表将成为一个数据库

  2. 我将执行与之前相同的输入,更新版本,它将使用之前创建的列表,并将自动完成用户开始写入的任何标记

如果用户输入L,所有带L的单词都会出现。懒惰、可爱、失败者

  1. 用户使用键盘箭头向下滚动,当他找到正确的单词时,按tab键选择它

事实上,stackoverflow的标签使用了我想要的版本


Tags: 用户标记版本数据库列表标签箭头键盘
1条回答
网友
1楼 · 发布于 2024-04-19 21:27:53

从“我只是为了好玩而制作一个玩具”到“我现在需要答案,它将投入生产”,这里有一些建议:

  1. 最简单的代码是查找以当前文本开头的所有字符串

    dictionary = ['happy', 'lazy', 'skinny']
    input_so_far = 'L'
    suggestions = [
        word
        for word in dictionary
        if word.lower().startswith(input_so_far.lower())
    ]
    
  2. 如果您想要简单的代码,但需要一个能够处理严肃字典的半严肃的解决方案,那么您需要研究一些适当的数据结构,比如B树,或者

  3. 。。。如果数据库中有文本(例如PostGreSQL),则可能有支持文本搜索的内置索引或插件。但是如果您需要最通用和/或性能最好的解决方案

  4. use a dedicated textual search capability例如Lucene。有趣的是,文本自动完成是人们经常做的事情,因此处理文本和快速查找的工具非常常见,而且非常好

编辑:作为后续,因为看起来您正在寻找一种在简单终端中实现这一点的方法,请查看this other question以获得有关如何使用用户输入实现响应的建议。并非所有这些解决方案都内置了自动完成功能(有些可能),重点在于如何获得输入以及如何处理我上面建议的方法的输出

相关问题 更多 >