gpt4 book ai didi

python - python 中字典的更智能 "reverse"(acc 的某些值相同)?

转载 作者:太空狗 更新时间:2023-10-30 00:52:12 28 4
gpt4 key购买 nike

def revert_dict(d):
rd = {}
for key in d:
val = d[key]
if val in rd:
rd[val].append(key)
else:
rd[val] = [key]
return rd

>>> revert_dict({'srvc3': '1', 'srvc2': '1', 'srvc1': '2'})
{'1': ['srvc3', 'srvc2'], '2': ['srvc1']}

这显然不是键与值的简单交换:这会覆盖一些值(作为新键),这不是我想要的。

如果不同键有 2 个或更多值相同,则键应该分组在列表中。

上面的功能是可行的,但我想知道是否有更智能/更快的方法?

最佳答案

看起来不错。您可以使用 defaultdict 稍微简化一下:

import collections

def revert_dict(d):
rd = collections.defaultdict(list)

for key, value in d.iteritems():
rd[value].append(key)

return rd

关于python - python 中字典的更智能 "reverse"(acc 的某些值相同)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4685320/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com