今天在用Python刷LeetCode时候, 用到了生成器, 但是出现了这样一个小问题:

StopIteration              Traceback (most recent call last)
<ipython-input-24-8efa10874b95> in <module>
----> 1 next(m)

StopIteration:

出现这个问题顾名思义, 是生成器停止迭代了, 那么为什么会出现这个问题呢? 出错的示例程序如下:

a = [[1,2], [2,3], [3,4]]
m = (i[0] for i in a)
for j in m:
print(j)
next(m)

显而易见, 这是因为在循环中使用了生成器, 导致生成器已经指向了其最后一个元素, 所以最后在进行​​next()​​操作的时候, 就出现了停止迭代的错误.这是以后需要避免的.