擅长:python、mysql、java
<p>简短的回答是:<strong>是的,您的理解是正确的。</p>
<p>这里只有一个问题:通常在python代码中使用嵌套列表理解的方法是在多维数组上操作。</p>
<p>一个典型的例子是当你操作矩阵时:</p>
<pre><code>>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [[el - 1 for el in row] for row in matrix]
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
</code></pre>
<p>正如你所看到的,“嵌套”通过操作矩阵的每个维度来工作。</p>
<p>在您提供的示例中,似乎<code>ySet</code>[不幸的名字btw,因为<em><a href="http://docs.python.org/library/stdtypes.html#set-types-set-frozenset" rel="noreferrer">sets</a></em>是python提供的类型之一]只是一个泛型计数器,这使得跟踪引擎罩下发生的事情有点困难。</p>
<p>至于你的第一个例子:</p>
<pre><code>>>> rows = ([1, 2, 3], [10, 20, 30])
>>> [(min([row[i] for row in rows]),max([row[i] for row in rows])) for i in range(len(rows[0]))]
[(1, 10), (2, 20), (3, 30)]
</code></pre>
<p>您可能希望查看<a href="http://docs.python.org/library/functions.html#zip" rel="noreferrer">zip</a>内置函数:</p>
<pre><code>>>> zip(rows[0], rows[1])
[(1, 10), (2, 20), (3, 30)]
</code></pre>
<p>或者为了达到简洁优雅的效果:</p>
<pre><code>>>> zip(*rows)
[(1, 10), (2, 20), (3, 30)]
</code></pre>
<p>啊!</p>