将元组与元组序列中的某些元素匹配

Posted

技术标签:

【中文标题】将元组与元组序列中的某些元素匹配【英文标题】:Matching a tuple with certain elements of a sequence of tuples 【发布时间】:2021-08-18 20:22:27 【问题描述】:

我有一个包含以下内容的答案元组序列(用于单词搜索游戏):

[(0, 0, 'downright', 'plain'), (5, 4, 'up', 'on'), (5, 1, 'left', 'mainly'), (4, 5, 'left', 'falls'), (0, 2, 'right', 'spain'), (0, 3, 'downright', 'in'), (1, 3, 'upright', 'rain'), (3, 0, 'left', 'the')]

我想将猜测元组与答案匹配,猜测是包含以下内容的元组:

(0, 0, 'downright')

如何将猜测元组与序列中的答案元组之一匹配?

我的尝试(但有时即使匹配,它也会给出 False):

def is_valid_answer(answers, guess):
found = True

for x,y in enumerate(answers):
    if guess == (answers[x][0:3]):
        return found
    else:
        found = False
        
        return found

【问题讨论】:

【参考方案1】:

如果answers 的第一项与guess 不匹配,则您的循环已经结束,因为您立即返回found (False)。因此,您的循环始终只进行一次迭代,并且只比较第一项。

如果您找到匹配项,则仅在循环中返回(使用True)。如果没有匹配,您可以在循环后返回False

def is_valid_answer(answers, guess):
    for x in answers:
        if guess == x[0:3]:
            return True
    return False

顺便说一句:这里不需要enumerate,你可以简单地比较一下产生的值(x)。

【讨论】:

非常感谢!欣赏它

以上是关于将元组与元组序列中的某些元素匹配的主要内容,如果未能解决你的问题,请参考以下文章

列表与元组

3python自学之路-数据类型之序列与元组

列表与元组——自兴人工智能

将每个元组与元组列表中的下一个合并

python(9):元组

python:列表与元组