擅长:python、mysql、java
<p>理想情况下,如果您可以创建一个<code>OrderedSet</code>对象的字典,它将保持顺序<em>和</em>保证只有唯一的值同时添加到它。在</p>
<p>不幸的是,Python没有这样的内置类,但是可以使用<code>OrderedDict</code>来代替它。使用<code>set</code>(或<code>dict</code>)的优点是成员资格检查的唯一性将比使用简单的<code>list</code>来收集值更快。在</p>
<p>我的意思是:</p>
<pre><code>from collections import OrderedDict
keylst = ['a','a','b','b','a','b']
vallst = [1,1,2,2,3,3]
result = {}
for k,v in zip(keylst, vallst):
result.setdefault(k, OrderedDict())[v] = 1
# convert final values in result dictionary into lists
for key, value in result.items():
result[key] = list(value.keys()) # In Python 2.x, just use = values.keys()
print(result) # -> {'a': [1, 3], 'b': [2, 3]}
</code></pre>
<p>另外,这里有一个由raymondhettinger编写的<code>OrderedSet</code><a href="https://code.activestate.com/recipes/576694/" rel="nofollow noreferrer">recipe</a>,你可以用上面的代码用<code>OrderedDict</code>来模拟一个。在</p>