【问题标题】:Autcomplete words that were previously on a list以前在列表中的自动填充词
【发布时间】:2020-08-11 13:29:40
【问题描述】:

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

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

例如:快乐、懒惰、瘦弱。

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

  2. 我会做和之前一样的输入,更新版本,它将使用之前创建的列表并自动完成用户开始编写的任何标签

例如:如果用户输入 L,所有带 L 的单词都会出现。例如:懒惰、讨人喜欢、失败者。

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

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

【问题讨论】:

    标签: python list input autocomplete tabs


    【解决方案1】:

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

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

      dictionary = ['happy', 'lazy', 'skinny']
      input_so_far = 'L'
      suggestions = [
          word
          for word in dictionary
          if word.lower().startswith(input_so_far.lower())
      ]
      
    2. 1234563
    3. ...如果您在数据库中有文本(例如 PostGreSQL),则可能有支持文本搜索的内置索引或插件。但是,如果您需要最通用和/或高性能的解决方案...

    4. ...use a dedicated textual search capabilityLucene。有趣的是,文本自动完成是人们经常做的事情,因此用于处理文本和进行快速查找的工具很常见并且真的很好。

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

    【讨论】:

    • 我是python新手,不太了解。我在哪里输入输入以及如何自动完成?
    • 我的变量input_so_far 是一些用户输入的替代品。您可以使用 Python 的内置函数 input() 从控制台获取文本,但在用户点击 之前不会返回,因此没有机会自动完成。你如何获得用户输入,以及你如何处理显示它们的建议,将非常依赖于你的代码在哪里运行(控制台?curses?tkinter GUI?web?等等),我不能给你一个一刀切的答案,在典型的控制台中可能没有干净的方法来做到这一点。
    • 好的,我明白了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多