Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不同列表的断言错误_Python_Unit Testing_Enumerate - Fatal编程技术网

Python 不同列表的断言错误

Python 不同列表的断言错误,python,unit-testing,enumerate,Python,Unit Testing,Enumerate,我在没有使用reversed()函数的情况下进行了反向枚举。我希望字符串和数字以相反的方式打印。然而,在测试时,我得到一个断言错误,声明列表不匹配 def my_own_enumerate(a): for i in range(len(a)-1, -1, -1): return i, a[i] class Test(unittest.TestCase): def test_my_own_enumerate(self): self.assertEq

我在没有使用reversed()函数的情况下进行了反向枚举。我希望字符串和数字以相反的方式打印。然而,在测试时,我得到一个断言错误,声明列表不匹配

def my_own_enumerate(a):
    for i in range(len(a)-1, -1, -1):
        return i, a[i]

class Test(unittest.TestCase):
    def test_my_own_enumerate(self):
        self.assertEqual([(0, "m"), (1, "e"), (2, "!")], list(my_own_enumerate("me!")))
  • my_own_enumerate
    的意思是返回一个反向枚举(如您自己所述),因此我不确定您为什么要使用非反向枚举断言其输出

  • my_own_enumerate
    中的循环在第一次迭代后返回,因此它总是只返回最后一个字符及其索引。相反,试试看

    def my_own_enumerate(a):
        return [(i, a[i]) for i in range(len(a) - 1, -1, -1)]
    
然后

没有失败

print(my_own_enumerate('me!'))
# [(2, '!'), (1, 'e'), (0, 'm')]
class Test(unittest.TestCase):
    def test_my_own_enumerate(self):
        self.assertEqual([(2, '!'), (1, 'e'), (0, 'm')], my_own_enumerate("me!"))