Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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,我的python代码如下所示: d={'abc':'movies', 'abc': 'sports', 'abc': 'music', 'xyz': 'music', 'pqr':'music','pqr':'movies', 'pqr':'sports', 'pqr':'news', 'pqr':'sports'} b=[j[0] for i in d for j in i.items()] for k in list(set(b)): print "{0}: {1}".forma

我的python代码如下所示:

d={'abc':'movies', 'abc': 'sports', 'abc': 'music', 'xyz': 'music', 'pqr':'music','pqr':'movies', 'pqr':'sports', 'pqr':'news', 'pqr':'sports'}

b=[j[0] for i in d for j in i.items()]

for k in list(set(b)):
    print "{0}: {1}".format(k, b.count(k))
我需要分别打印每个键的不同值的数量。 这意味着我想打印

abc 3
xyz 1
pqr 4
我得到一个错误:
AttributeError:'str'对象没有属性'items'

请帮忙

您不能这样做,因为每个键在字典中只能出现一次:

>>> d={'abc':'movies', 'abc': 'sports', 'abc': 'music', 'xyz': 'music', 'pqr':'music','pqr':'movies', 'pqr':'sports', 'pqr':'news', 'pqr':'sports'}
>>> d
{'pqr': 'sports', 'abc': 'music', 'xyz': 'music'}
您想要的是将列为值:

>>> d = {'abc': ['movies', 'sports', 'music'], 'xyz': ['music'], 'pqr': ['music', 'movies', 'sports', 'news', 'sports']}
>>> d
{'xyz': ['music'], 'abc': ['movies', 'sports', 'music'], 'pqr': ['music', 'movies', 'sports', 'news', 'sports']}
使用此表示法,可以非常简单地执行您想要的操作:

>>> for key, value in sorted(d.items()):
...     print key, len(value)   #in python3: print(key, len(value))
... 
abc 3
pqr 5
xyz 1
如果随后要向给定键添加值,只需执行以下操作:

>>> d['xyz'].append('news')
>>> for key, value in sorted(d.items()):
...     print key, len(value)
... 
abc 3
pqr 5
xyz 2

通常在这种情况下,使用一个而不是普通的
dict
更好。

Python字典中不能有重复的键:

>>> d = {'abc':'movies', 'abc': 'sports', 'abc': 'music', 'xyz': 'music', 'pqr':'music','pqr':'movies', 'pqr':'sports', 'pqr':'news', 'pqr':'sports'}
>>> print d
{'pqr': 'sports', 'abc': 'music', 'xyz': 'music'}

你的字典有效吗?它不能有重复的答案,下面的答案完全回答你的问题,请考虑接受帮助你解决你的问题最好的答案。