擅长:python、mysql、java
<p>使用<code>dict</code>保留其键的插入顺序(在Python 3.7中是<a href="https://mail.python.org/pipermail/python-dev/2017-December/151283.html" rel="nofollow noreferrer">will become part of the specification</a>,但在3.6中已经是这样)这一事实,可以在一个简短的行中完成:</p>
<pre><code># create some data
>>> import random
>>> a = [random.randint(0, 3) for _ in range(20)]
>>> b = [random.randint(0, 3) for _ in range(20)]
>>>
>>> a
[0, 3, 2, 1, 2, 0, 1, 2, 0, 2, 1, 1, 0, 3, 1, 3, 1, 2, 3, 2]
>>> b
[1, 0, 3, 2, 2, 2, 2, 3, 1, 2, 1, 1, 1, 1, 3, 0, 0, 0, 3, 3]
>>>
# this one line is all we need
>>> au, bu = zip(*dict.fromkeys(zip(a, b)))
>>>
# admire
>>> au
(0, 3, 2, 1, 2, 0, 1, 3, 1, 1, 2, 3)
>>> bu
(1, 0, 3, 2, 2, 2, 1, 1, 3, 0, 0, 3)
</code></pre>
<p>请注意,与人们可能期望的相反,这对集合不起作用-实际上必须使用dict(带有伪值)。你知道吗</p>