Python迭代器小坑

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

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

输出:

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

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

其输出:

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

如果文章帮助到你,那么帮我点一下广告 or 打赏1元钱,服务器费用需要大家的支持。

发表评论

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