在python字典中组合具有相同值的键的有效方法
例如,我有下面的字典在python字典中组合具有相同值的键的有效方法,python,Python,例如,我有下面的字典 {'key1':value1,'key2':value2,'key3':value1,.......}} 我想将其更改为以下形式: {value1:[key1,key2],value2:[key3],....} 为了完成这项任务,我写了以下内容。然而,我不确定这是否是最好的方法。有没有更好的方法来执行此任务 node_cluster = {} for node,cluster in zip(partition.keys(),partition.values()):
{'key1':value1,'key2':value2,'key3':value1,.......}}
我想将其更改为以下形式:
{value1:[key1,key2],value2:[key3],....}
为了完成这项任务,我写了以下内容。然而,我不确定这是否是最好的方法。有没有更好的方法来执行此任务
node_cluster = {}
for node,cluster in zip(partition.keys(),partition.values()):
if cluster not in node_cluster.keys():
node_cluster[cluster] = []
node_cluster[cluster].append(node)
您可以使用a将代码缩短一点。当您尝试访问尚不存在的密钥时,defaultdict(list)
将自动创建一个空列表作为值:
from collections import defaultdict
d = {'a': 1, 'b': 2, 'c': 1}
out = defaultdict(list)
for k, v in d.items():
out[v].append(k)
print(out)
# defaultdict(<class 'list'>, {1: ['a', 'c'], 2: ['b']})
从集合导入defaultdict
d={'a':1,'b':2,'c':1}
out=defaultdict(列表)
对于d.项()中的k,v:
out[v]。追加(k)
打印(输出)
#defaultdict(,{1:['a',c'],2:['b']})
尝试对于节点,分区中的集群。items():
这似乎是一个合理的解决方案。你可以考虑用A来清理一些样板,我想这是你能做到的。这个问题在这里有一个答案:这是正确的答案,但是对于d中的k,v,缺少。items():
@superbrain Oops。。。是的,看起来我在复制之前滑倒并删除了一行。。。现在又回来了,谢谢!