Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,具有相同值的两个键对应一个键_Python_Dictionary - Fatal编程技术网

在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())}