在python中,具有相同值的两个键对应一个键
在一个字典中,我想合并具有相同值的键 从在python中,具有相同值的两个键对应一个键,python,dictionary,Python,Dictionary,在一个字典中,我想合并具有相同值的键 从 d = {'a' : '100', 'b' : '100'} 到 有没有一种简单的方法可以做到这一点?d={'a':100,'b':100,'c':10} tmp={} 对于键,d.items()中的值: 如果tmp中的值为: tmp[value]。追加(键) 其他: tmp[值]=[键] 打印tmp{10:['c'],100:['a','b']} e={} 对于值,在tmp.items()中键入: e[';'。连接(键)]=值 打印e#{'a;b':
d = {'a' : '100', 'b' : '100'}
到
有没有一种简单的方法可以做到这一点?d={'a':100,'b':100,'c':10}
tmp={}
对于键,d.items()中的值:
如果tmp中的值为:
tmp[value]。追加(键)
其他:
tmp[值]=[键]
打印tmp{10:['c'],100:['a','b']}
e={}
对于值,在tmp.items()中键入:
e[';'。连接(键)]=值
打印e#{'a;b':100,'c':10}
理解后,如果键的值等于给定值,则按字母顺序连接键
combo = {';'.join(sorted(k for k in d.keys() if d[k] == v)): v for v in set(d.values())}
请看这里:为什么不
'b;一个“
?因为字典是无顺序的,你不能这样做。把字典倒过来怎么样?把这句话存储为:{100:['a',b']}
?啊,我明白了。谢谢你的申请。
combo = {';'.join(sorted(k for k in d.keys() if d[k] == v)): v for v in set(d.values())}