我有一个元素列表。我想知道列表中是否有两对元素,其中这对元素的值相同。在
我的想法是,首先比较列表中的所有元素,如果找到一对元素,则从列表中删除该对元素,然后再继续。因此,我认为我可以使用递归来完成这个任务,但是将深度限制为2来解决问题。在
这是我的第一次尝试:recursion_depth=0
def is_twopair(card):
nonlocal recursion_depth
if recursion_depth==2: return True
for i in range(0, len(card)):
for k in range(i+1,len(card)):
if card[i].value==card[k].value:
del card[k], card[i]
recursion_depth+=1
is_twopair(card)
else: continue
else: continue
else: return False
我使用变量recursion_depth来记录递归的深度,但是后来意识到return命令并没有立即终止函数并返回true,而是返回到其原始调用方is_twopair(card)。所以我的问题是:有没有方法可以立即终止函数并返回结果true?在
有没有办法限制递归的深度?在
我知道也许有几种方法可以解决这个问题。但我想忠于我的想法,并以此作为学习的机会。在