<h3>Python 3.6+</h3>
<p>字典在python3.6+中排序,作为3.6中的实现细节,在3.7+中确认。所以在本例中,可以将<code>dict</code>与忽略重复项的iterable一起使用。要忽略重复项,可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools-recipes" rel="nofollow noreferrer">^{<cd2>} ^{<cd3>} recipe</a>,也可以通过第三方<a href="https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.unique_everseen" rel="nofollow noreferrer">^{<cd4>}</a>或<a href="https://toolz.readthedocs.io/en/latest/api.html#toolz.itertoolz.unique" rel="nofollow noreferrer">^{<cd5>}</a>获得:</p>
<pre><code>from operator import itemgetter
from toolz import unique
l1 = ['a','b','a','e','b','c','a','d']
l2 = ['t1','t2','t3','t4','t5','t6','t7','t8']
keys, values = zip(*dict(unique(zip(l1, l2), key=itemgetter(0))).items())
print(keys)
('a', 'b', 'e', 'c', 'd')
print(values)
('t1', 't2', 't4', 't6', 't8')
</code></pre>
<h3>Python 2.7</h3>
<p>对于Python 2.7,可以使用<a href="https://docs.python.org/2/library/collections.html#collections.OrderedDict" rel="nofollow noreferrer">^{<cd6>}</a>而不是<code>dict</code>,其中字典没有顺序:</p>
<pre><code>from collections import OrderedDict
keys, values = zip(*OrderedDict(unique(zip(l1, l2), key=itemgetter(0))).items())
</code></pre>