擅长:python、mysql、java
<p>我将使用基于<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.triu_indices.html" rel="nofollow noreferrer">^{<cd1>}</a><br/>
这些是nxn方阵上三阶的指数,其中n=<code>len(long_list)</code></p>
<p>问题是,首先创建整个索引集。itertools不会这样做,只会一次生成一个组合。在</p>
<pre><code>def combinations_of_2(l):
for i, j in zip(*np.triu_indices(len(l), 1)):
yield l[i], l[j]
long_list = list('abc')
c = combinations_of_2(long_list)
list(c)
[('a', 'b'), ('a', 'c'), ('b', 'c')]
</code></pre>
<hr/>
<p>一次把它们都弄到手</p>
^{pr2}$
<hr/>
<p><strong><em>计时</em></strong><br/>
<code>long_list = pd.DataFrame(np.random.choice(list(ascii_letters), (3, 1000))).sum().tolist()</code><br/>
<a href="https://i.stack.imgur.com/iaj2N.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iaj2N.png" alt="enter image description here"/></a></p>