【问题标题】: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

【问题讨论】:

    标签: python python-3.x tuples sequence string-matching


    【解决方案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)。

    【讨论】:

    • 非常感谢!欣赏它
    猜你喜欢
    • 2018-04-15
    • 2019-01-05
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多