擅长:python、mysql、java
<p>这是一个相当复杂的方法,我将提供一个更简单的方法。首先,用一个简单的生成器创建<code>d</code>:</p>
<pre><code>d= (range(1, i) for i in [3, 4, 5])
</code></pre>
<p>然后,在<code>zip_longest</code>和<code>chain.from_iterable</code>的帮助下,为每个具有空列表的范围创建一个<code>zip</code>,以便<code>0</code>的<code>fillvalue</code>可以应用于它:</p>
<pre><code>for i in from_it(izip([],i, fillvalue=0) for i in d):
print(*i)
</code></pre>
<p>重命名一些内容,使其更加紧凑:</p>
<pre><code>from_it = chain.from_iterable
izip = zip_longest
</code></pre>
<p>最后你会得到:</p>
<pre><code>for i in from_it(izip([],i, fillvalue=0) for i in d):
print(*i)
</code></pre>
<p>由此产生:</p>
<pre><code>0 1
0 2
0 1
0 2
0 3
0 1
0 2
0 3
0 4
</code></pre>