我有一个很长的嵌套列表,看起来像这样
['a','b',['c','d',['e',['a','b',['c','d',['e',['a','b',['c','d',['e4',['a','b',['c','d',['e',['a','b',['c','d',['e',['a','b',['c','d',['e14']]]]]],]]]]]]]]],]]]
我试图在该列表中找到value
,但是在我的例子中,普通for循环不起作用,因为我需要遍历每个循环,这将花费很长时间
我提出了这个递归函数:
def locate(seq :list, value:int):
for item in seq:
if item.__class__ is list:
locate(item, value)
else:
if(item == value):
return True
return False
下面是我为算法创建的单元测试:
import unittest
class TestCase(unittest.TestCase):
def test_locate(self):
self.assertEqual(locate(['a','b',['c','d',['e']]],'e'), True)
def test_locate_two(self):
self.assertEqual(locate(['a','b',['c','d',['e',['a','b',['c','d',['e',['a','b',['c','d',['e4',['a','b',['c','d',['e',['a','b',['c','d',['e',['a','b',['c','d',['e14']]]]]],]]]]]]]]],]]],'e'), True)
if __name__ == '__main__':
unittest.main()
测试结果:
Ran 2 tests in 0.001s
FAILED (failures=2)
因此,我尝试了这种修改:
似乎工作在夫妇的测试,如果你发现一个案件,它不工作,请张贴,所以我可以尝试看看它
相关问题 更多 >
编程相关推荐