微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将元组与元组序列的某些元素匹配

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

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

我想将一个猜测元组一个答案相匹配,一个猜测元组包含:

(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

解决方法

如果 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)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。