你不能这样做,因为每个键在字典中只能出现一次:
>>> 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'}
您想要的是将list
s 作为值:
>>> 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
通常在这种情况下使用 adefaultdict
而不是 plaindict
更好。