2024-04-20 10:23:14 发布
网友
有没有办法查看一个字典中有多少项在Python中共享相同的值?
假设我有一本字典,比如:
{"a": 600, "b": 75, "c": 75, "d": 90}
我想得到一本词典,比如:
{600: 1, 75: 2, 90: 1}
我的第一个天真的尝试是使用嵌套for循环,然后对每个值再次遍历字典。有更好的办法吗?
当Python 2.7发布时,您可以使用它的collections.Counter class
否则请参见counter receipe
在Python 2.7a3下
from collections import Counter items = {"a": 600, "b": 75, "c": 75, "d": 90} c = Counter( items ) print( dict( c.items() ) )
输出为
{600: 1, 90: 1, 75: 2}
您可以使用itertools.groupby进行此操作。
import itertools x = {"a": 600, "b": 75, "c": 75, "d": 90} [(k, len(list(v))) for k, v in itertools.groupby(sorted(x.values()))]
>>> a = {"a": 600, "b": 75, "c": 75, "d": 90} >>> b = {} >>> for k,v in a.iteritems(): ... b[v] = b.get(v,0) + 1 ... >>> b {600: 1, 90: 1, 75: 2} >>>
当Python 2.7发布时,您可以使用它的collections.Counter class
否则请参见counter receipe
在Python 2.7a3下
输出为
您可以使用itertools.groupby进行此操作。
相关问题 更多 >
编程相关推荐