2015-12-11 3 views
0

Эта функция дает мне непредсказуемую ошибку StopIteration. Я хочу понять, что вызывает такую ​​ошибку. Потому что это иногда работает, а иногда нет:StopIteration непредсказуемая ошибка

def prepare_dimensions(dimensions, dim_list): 
     for dimension in dimensions: 
      dimension['info'] = next(dim for dim in dim_list if dimension['id'] == dim['_id']) 
+0

Можете ли вы добавить пример ввода для функции на вопрос? Также покажите, каков будет ваш ожидаемый результат. –

ответ

4

StopIteration будет поднят next, если она дается пустой Iterable.

Если какой-либо из ваших dimensions ничего не соответствует в dim_list, вы получите эту ошибку, потому что понимание списка будет пустым. Аналогично, если dim_list пуст, вы получите эту ошибку.

+0

Вы правы, было несоответствие между сокращениями и длинами dim_list. –

Смежные вопросы