擅长:python、mysql、java
<p>如果不是筛选出<code>None</code>项,而是重写<code>grouper()</code>以返回所需的是一个选项,则可以使用以下解决方案使用<code>itertools.islice</code>:</p>
<pre><code>def grouper(n, iterable):
it = iter(iterable)
x = tuple(islice(it, n))
while x:
yield x
x = tuple(islice(it, n))
</code></pre>
<p>或一个较短的等效物(稍难理解):</p>
^{pr2}$
<p>示例:</p>
<pre><code>>>> list(grouper(5, range(12)))
[(0, 1, 2, 3, 4), (5, 6, 7, 8, 9), (10, 11)]
</code></pre>