Ошибка утверждения: [101, 1203, 1365, 1137, 8601, 117, 4835, 1104, 1141, 1292, 119, 102, 0, 0, 0, 0, 0, 0, 0, 0] не является

#python #assert

#python #утверждать

Вопрос:

Несмотря на то, что функция предварительной обработки возвращает список, ошибка утверждения возникает каждый раз

 pre = n.preprocess("New York or Mumbai, choose of one these.")
j = []
for i in range(4):
   ##To check the data type
   print("preprocess", type(pre[i]))
   self.assertIs(pre[i], list)
 

Как я могу устранить эту ошибку?

Комментарии:

1.Зачем утверждать по идентичности? Вы пытаетесь утверждать, что pre[i] это пример list ? Видишь assertIsInstance .

2. id(list) против id([1,2,3]) , это не одно и то же

3. Да, я пытаюсь утверждать pre[i] в качестве примера list . Я не утверждаю по идентичности, но я имею pre в tuple виду list .

Ответ №1:

Из документации:

 assertIs(first, second, msg=None)
assertIsNot(first, second, msg=None)
Test that first and second are (or are not) the same object.
 

Ваша переменная pre[i] и встроенный тип list данных — это не те же объекты (конечно, если вы не будете присваивать pre[i] = list или что-то в этом роде). Вы должны использовать другой метод для сравнения, например,
assertIsInstance
.