首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法证明我的列表中有WordSearch游戏的单词

无法证明我的列表中有WordSearch游戏的单词
EN

Stack Overflow用户
提问于 2015-10-20 01:16:19
回答 4查看 36关注 0票数 0

我已经为这个特定的单词网格创建了一个所有可能结果的列表,做了对角线,向上,向下和所有的反转):

我将其称为allWords,但当我尝试在allWords中查找我知道的特定单词时,循环找不到隐藏的单词。我知道我的问题,但我知道如何绕过它(对于糟糕的解释,很抱歉,希望下面的例子能更好地说明它):

下面是一个例子: My wordList是我知道的隐藏在wordgrid中的单词的列表。我的allWords是来自wordgrid的行、列、对角线的列表,但是

代码语言:javascript
复制
WordList = ['HAMMER','....']

allWords = ['ARBHAMMERTYU','...']

这个HAMMERallWords中,但被后面的其他字符“遮盖”了,所以我无法显示HAMMER在wordgrid中。

代码语言:javascript
复制
length = len(allWords)
for i in range(length):
    word = allWords[i]
    if word in wordList:
        print("I have found", word)

它在allWords中找不到任何单词HAMMER

任何对解决这个问题的帮助都将是巨大的。

EN

回答 4

Stack Overflow用户

发布于 2015-10-20 01:28:57

如果我理解正确的话,您正在尝试在allWords中查找匹配项,并且您希望遍历WordList并确定是否存在子字符串匹配。

因此,如果这是正确的,那么您的代码并没有完全做到这一点。要一步一步地检查您的代码以更正发生的情况:

代码语言:javascript
复制
length = len(allWords)
for i in range(length):

上面你想做的不一定是检查你的allWords。您希望遍历WordList并查看它是否在allWords中。您并没有这样做,而是想这样做:

代码语言:javascript
复制
length = len(WordList)
for i in range(length):

考虑到这一点,这意味着您现在想引用WordList而不是allWords,所以您现在想要更改这一点:

代码语言:javascript
复制
word = allWords[i]

要这样做:

代码语言:javascript
复制
word = WordList[i]

最后,这里有一个新的信息,用来确定您正在匹配的字符串中是否确实有一个子字符串匹配。一种称为"any“的方法。"any“方法的工作方式是,如果至少找到一个与您要查找的内容匹配的项,则返回True。它看起来是这样的:

代码语言:javascript
复制
any(if "something" in word in word for words)

如果"something“在word中,它将返回True,否则将返回False。

因此,将所有这些放在一起,并使用样例输入运行代码,我们得到:

代码语言:javascript
复制
WordList = ['HAMMER','....']

allWords = ['ARBHAMMERTYU','...']

length = len(WordList)
for i in range(length):
    word = WordList[i]
    if any(word in w for w in allWords):
        print("I have found", word)

输出:

代码语言:javascript
复制
I have found HAMMER
票数 0
EN

Stack Overflow用户

发布于 2015-10-20 01:30:01

您不是在将wordList中的每个wordallWords中的一个单词进行比较。行if word in wordList比较的是确切的单词。即

仅当单词锤子wordList中时,if word in wordList才返回True。

要匹配子字符串,您需要另一个循环:

代码语言:javascript
复制
for i in range(length):
    word = allWords[i]
    for w in WordList:
        if w in word:
            print("I have found ", word)
票数 0
EN

Stack Overflow用户

发布于 2015-10-20 01:31:46

您可以尝试如下所示:

代码语言:javascript
复制
for word in allWords:
    if word in WordList:
        print("I have found", word)

啊,或者错误是你写了WordList,你真正定义了wordList。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33220236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档