擅长:python、mysql、java
<pre><code>>>> L=range(46)
>>> def f(x, y): #for example
... return x * y
...
>>> [f(x, y) for x, y in zip(*[iter(L)] * 2)]
[0, 6, 20, 42, 72, 110, 156, 210, 272, 342, 420, 506, 600, 702, 812, 930, 1056, 1190, 1332, 1482, 1640, 1806, 1980]
</code></pre>
<p>编辑:</p>
<p>对于对的powerset,我们从以相同的方式创建对开始。对于Python3,使用<code>range</code>代替<code>xrange</code></p>
^{pr2}$
<p>这将是一个相当大的列表,您可能需要使用一个生成器表达式</p>
<pre><code>for item in ({j for i, j in enumerate(S) if (1<<i)&k} for k in xrange(1<<len(S))):
func(item)
</code></pre>