如何解决将元组与元组序列的某些元素匹配
[(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 举报,一经查实,本站将立刻删除。