擅长:python、mysql、java
<p>这是<a href="https://docs.python.org/2/library/itertools.html#itertools.product" rel="nofollow">^{<cd1>}</a>:</p>
<pre><code>import itertools
for year, month, hour, node in itertools.product(
yearsindex, monthindex, hourindex, nodeindex):
dosomething(year, month, hour, node)
</code></pre>
<p>你可以看到,把所有这些塞进一条逻辑线上并不是真正的可读性改进。有几种方法可以使它得到改进。例如,如果您可以避免对迭代器提供的元组进行解包,或者您可以将<code>itertools.product</code>的参数放在一个列表中,并用<code>*args</code>解包:</p>
<pre><code>for arg_tuple in itertools.product(*indexes):
dosomething(*arg_tuple)
</code></pre>
<p>如果循环体比<code>dosomething</code>的一行长,那么还可以减少缩进。对于一个短环体,这并不重要。你知道吗</p>