将元组与元组序列的某些元素匹配
Matching a tuple with certain elements of a sequence of tuples
我有一系列答案元组(用于单词搜索游戏),其中包含:
[(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')
如何将猜测元组与序列中的答案元组之一相匹配?
我的尝试(尽管它有时会给出错误,即使它确实匹配):
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
不匹配,您的循环已经结束,因为您 return found
(False
) 立即.因此你的循环总是只进行一次迭代并且只比较第一项。
Return 仅在循环中(使用 True
),如果找到匹配项。如果没有匹配项,您可以在循环后 return False
。
def is_valid_answer(answers, guess):
for x in answers:
if guess == x[0:3]:
return True
return False
顺便说一句:这里你不需要enumerate
,你可以简单地比较产生的值(x
)。
我有一系列答案元组(用于单词搜索游戏),其中包含:
[(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')
如何将猜测元组与序列中的答案元组之一相匹配?
我的尝试(尽管它有时会给出错误,即使它确实匹配):
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
不匹配,您的循环已经结束,因为您 return found
(False
) 立即.因此你的循环总是只进行一次迭代并且只比较第一项。
Return 仅在循环中(使用 True
),如果找到匹配项。如果没有匹配项,您可以在循环后 return False
。
def is_valid_answer(answers, guess):
for x in answers:
if guess == x[0:3]:
return True
return False
顺便说一句:这里你不需要enumerate
,你可以简单地比较产生的值(x
)。