将元组与元组序列中的某些元素匹配
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
)。
【讨论】:
非常感谢!欣赏它以上是关于将元组与元组序列中的某些元素匹配的主要内容,如果未能解决你的问题,请参考以下文章