擅长:python、mysql、java
<p>如果不使用至少一个for循环,则无法执行此任务。您所能做的最好的方法是<em>隐藏</em>for循环或使用隐式<code>yield</code>调用来生成内存效率高的生成器。在</p>
<p><code>itertools</code>导出此任务的有效函数,这些函数隐式使用<code>yield</code>返回生成器:</p>
<pre><code>from itertools import product
products = product(['a','b','c','d'], [1,2,3])
col1_items, col2_items = zip(*products)
result = pandas.DataFrame({'col1':col1_items, 'col2': col2_items})
</code></pre>
<p><code>itertools.product</code>创建两个iterable的<a href="https://docs.python.org/2/library/itertools.html#itertools.product" rel="nofollow noreferrer">Cartesian product</a>。<code>zip(*products)</code>只是将得到的元组列表解压成两个单独的元组,如<a href="https://stackoverflow.com/questions/7558908/unpacking-a-list-tuple-of-pairs-into-two-lists-tuples">here</a>。在</p>