AssertionError разных списков - PullRequest
       7

AssertionError разных списков

0 голосов
/ 28 февраля 2019

Я сделал обратное перечисление без использования функции reversed ().Я хочу, чтобы строка и числа печатались в обратном порядке.Однако при тестировании я получаю AssertionError, утверждающую, что списки не совпадают.

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!")))

1 Ответ

0 голосов
/ 28 февраля 2019
  • 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!"))

Не подведет.

...