擅长:python、mysql、java
<p>你想用字典做什么是不可能的。事实上,这与词典背后的整体理念背道而驰。</p>
<p>而且,您的<code>Sets</code>类也不会帮助您,因为它有效地为每个名称赋予了一个新的(某种随机的)哈希代码,使得从字典中检索条目变得困难,除了检查所有条目之外,这会破坏dict的目的。您不能执行<code>dict.get(Sets(some_name))</code>,因为这将创建一个新的对象,与字典中已有的哈希代码不同!</p>
<p>你可以做的是:</p>
<ol>
<li><p>只需创建一个<code>(name, value)</code>对的列表,或者</p>
<pre><code>pairs = zip(names, values) # or list(zip(...)) in Python 3
</code></pre></li>
<li><p>创建将名称映射到值列表的字典。</p>
<pre><code>dictionary = {}
for n, v in zip(names, values):
dictionary.setdefault(n, []).append(v)
</code></pre></li>
</ol>
<p>第一种方法,使用元组列表,将有线性查找时间(您基本上必须检查所有条目),但第二种方法,一个dict映射到列表,是尽可能接近“多键dict”,应该能很好地满足您的目的。要访问每个键的值,请执行以下操作:</p>
<pre><code>for key, values in dictionary.iteritems():
for value in values:
print key, value
</code></pre>