Python迭代器小坑

我们知道,python的迭代器是通过不断调用next()方法来前进遍历的。

但是我们很少注意,迭代器不能用2次的问题,下面展示了这个问题:

输出:

因为第一次list(it)已经让迭代器前进到了末尾,所以第二次list(it)会得到一个空列表。

单独看这个问题很容易理解,但是放到开发的具体过程中是很容易出现的,一个典型场景如下:

其输出:

这种错误很容易遇到的原因是,我们经常不在乎函数返回的是迭代器还是列表,因此我们很容易在返回迭代器的情况下搞出上述的BUG。

博主无私的分享着知识,你愿意送他一顿热腾腾的早餐吗?

发表评论

电子邮件地址不会被公开。