【问题标题】:(Python) How do I compare a few letters to a whole list of words to find, what words contain the searched-for letters in order?(Python)如何将几个字母与要查找的整个单词列表进行比较,哪些单词按顺序包含搜索到的字母?
【发布时间】:2022-01-07 19:46:14
【问题描述】:

问题基本上说明了一切。

我正在尝试按顺序查找包含特定字母的单词。 因此,如果我搜索“ers”,它应该只给出“ERStaunding”等词。

这就是我目前所拥有的:(不起作用,因为字符串需要一个字符串作为左操作数)但你明白了:

sorted = []

for i in range(0,len(words)): #"words" is a list of 1600 words
    if possible in words[i]: #error because of what I said before
        sorted.append(words[i]) #"possible" is a string of letters 

print(sorted)

提前致谢!

编辑:

这是我输入/输出的内容:(在伪代码中,它是 uni 的刽子手)

用户输入:“你好”——要猜的词

cpu 猜测:“h”(例如) “h是你的话的一部分吗?(y/n)”

用户输入:“y”

计算机知道“h”在位置 1(通过与必须猜测的单词进行比较) - 愚蠢,我知道,但这是一个例子 :D : h _ _ _ _

现在电脑应该将他所拥有的(h 到索引 0 处的这一点)与数据库中的单词(在我的例子中是 words.txt)进行比较,并且只留下那些以“h”作为首字母的单词。这个过程应该是可以互换的。例如:如果电脑有_ _ l l _,他应该仍然可以过滤单词。

我希望这就是您的示例,希望这对您有所帮助:D

【问题讨论】:

  • 1) sorted() 是一个内置的 Python 函数,所以不要将你的结果列表命名为那个。 2)您可以直接迭代列表(for word in words:),因此您根本不需要range()len()。 3) possible 应该可能包含您要查找的字符串。 4) 您需要在某些时候使用upper()lower(),以便以不区分大小写的方式进行搜索。
  • @PatrickArtner 是的,这行得通,但我正在尝试 OP 如何使用该语言的各种功能。我怀疑他们还没有在课堂上讲过列表组合。
  • @MattDMo 好的 - 让我们教:亲爱的 OP,edit 您的问题包含一个 minimal reproducible example,它清楚地说明了您的代码使用的所有这些变量是什么。目前我只收到 NameError - 你需要帮助吗?
  • @MattDMo 感谢您的帮助:) 我不使用大写或小写,因为我已将整个库导入为小写。 (text = file.read().lower())

标签: python python-3.x list


【解决方案1】:

我想你只是想检查给定的单词是否出现在开头。

substring=substring.lower()
for i in range(0,len(words)): #"words" is a list of 1600 words
    s=words[i].lower()
    if substring in s: # word found at the begining
        sorted.append(words[i])

【讨论】:

  • 为什么他们只搜索每个单词的开头?
  • 正如他所说,“ers”应该只给出“ERStaunding”之类的词。我以为他只是想检查字符串在开始时是否存在。我现在也更新了代码
  • 感谢您的帮助 :) 我正在搜索整个单词,而不仅仅是开始。 ://
  • 行得通!一个我没有想到的新问题出现了。如果我有一个像 list = ["t","h"," ","n"," "] 这样的列表,如果我将它转换为字符串,它就会变成 "thn" 并且我无法过滤包含完全“thn”,因为基本上没有。这不是 PC 应该寻找的词。我仍然会将您标记为工作答案。你也能帮我解决这个问题吗?请问漂亮吗?我迷路了:D
  • 我想我需要转换成一个字符串,但是用一些字符填充剩余的空格,所以 PC 在它的搜索中跳过那些(比如可能 = ''.join(substring))
猜你喜欢
  • 2012-12-20
  • 2018-07-13
  • 2012-11-28
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多