擅长:python、mysql、java
<p>在迭代集合的同时修改它。坏主意。在</p>
<p>这是<a href="https://docs.python.org/2/library/sets.html" rel="nofollow noreferrer">cool datastructure that gets rid of duplicates</a>:</p>
<p><strong>创建大量重复数据:</strong></p>
<pre><code>from itertools import combinations
# make all 2-length combinations of 1,2,3,1,2,3,4,5,3
comb = list(combinations([ 1,2,3,1,2,3,4,5,3 ],2)) # works with strings as well
print(comb)
</code></pre>
<p>输出:</p>
^{pr2}$
<p><strong>使数据唯一:</strong></p>
<pre><code>uniques = set(comb)
print(uniques)
</code></pre>
<p>输出:</p>
^{4}$
<p>如果您需要某个东西的所有<a href="https://docs.python.org/3.6/library/itertools.html#itertools.combinations" rel="nofollow noreferrer">combinations</a>,请事先将somethings填充到<code>set</code>中,以删除所有重复,并通过<code>set</code>创建您的<code>combinations</code>。如果您在一个<code>list</code>上使用<code>combinations</code>,那么您将创建不需要的多个<code>combinations</code>-因此<strong><code>set</code></strong>,然后从中生成<strong><code>combination</code>s</strong>。在</p>
<hr/>
<p>set(和dict)的缺点是它们需要不可变的键,因此<code>tuples</code>很好,<code>lists</code>不是,但是{<cd12>}工作得很好。如果需要,您可以<code>tuple(alist)</code>。在</p>