擅长:python、mysql、java
<p><a href="https://stackoverflow.com/a/69598289/4518341">azro's answer</a>非常好,但是如果有帮助的话,我只想添加一个没有<code>collections</code>的实现。如果需要,我将使用<a href="https://docs.python.org/3/library/stdtypes.html#dict.setdefault" rel="nofollow noreferrer">^{<cd2>}</a>插入一个新列表,否则将获取现有列表</p>
<pre><code>def invert(d):
inverted = {}
for k, v in d.items():
for x in v:
L = inverted.setdefault(x, [])
L.append(k)
return inverted
dict1 = {1: [2, 3, 5], 2: [1, 4], 3: [1, 2]}
print(invert(dict1)) # -> {2: [1, 3], 3: [1], 5: [1], 1: [2, 3], 4: [2]}
</code></pre>
<p>带有<code>setdefault</code>的这一行表示:</p>
<pre><code>if x not in inverted:
inverted[x] = []
L = inverted[x]
</code></pre>