嘿有其他程序员,我想以递归的方式检查列表元素的相等性。以下代码剪断应该完成此任务,但我可能误解了一些东西。如果我测试函数are_numbers_equal([2,2,2,2])我得到False而不是True。我会感谢你的帮助!很多爱< 3
代码:
def are_numbers_equal(self, numbers):
if len(numbers) > 1:
return numbers.pop() == self.are_numbers_equal(numbers)
else:
return numbers.pop()
答案 0 :(得分:2)
调用您的函数ane
ane([2, 2, 2, 2]) = (2 == ane([2, 2, 2]))
= (2 == (2 == ane([2, 2])))
= (2 == (2 == (2 == ane([2]))))
= (2 == (2 == (2 == 2)))
= (2 == (2 == True))
= (2 == False)
= False
除了递归逻辑的明显问题之外,您的解决方案还有多个缺陷:
ValueError
)有关如何检查列表中所有元素是否相等的详细答案,请参阅https://stackoverflow.com/a/3844832/2246024。