此函数会给我不可预测的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'])
StopIteration
将由next
引发,如果它被赋予一个空的可迭代项。
如果你的任何dimensions
与dim_list
中的任何内容都不匹配,你就会得到这个错误,因为列表理解将是空的。类似地,如果dim_list
为空,则会出现此错误。