在Python

时间:2015-09-14 12:21:50

标签: python dictionary

所以我在Python上编写代码,但我对语言知之甚少,所以我遇到了一些问题。我想做的是: 例如,我有一个音乐类型列表(摇滚,流行,嘻哈)和一个分类列表(坏,好,正常),我有一个字典(genredict),我想做的是当我跑步我的代码,每次它达到一个类型,我会得到它的分类并增加一个。例如:

    genredict['rock'] = 'good', ++1 'something like this, for sure this part won't work'

我想为每个类型创建一个字典,但我的列表中有很多类型,所以它不是解决问题的最佳方法。所以任何人都知道如何在字典中保存一个键和多个值,其中一个值可以递增而另一个值是常量?

感谢帮助人员。

1 个答案:

答案 0 :(得分:1)

我会使用嵌套字典,最简单的实现方法是使用defaultdict Counter

>>> from collections import Counter, defaultdict
>>> genredict = defaultdict(Counter)
>>> genredict
defaultdict(<class 'collections.Counter'>, {})  # starts off empty
>>> genredict['rock']['good'] += 1  # increment appropriate genre/rating
>>> genredict['blues']['normal'] += 1
>>> genredict
defaultdict(<class 'collections.Counter'>, 
            {'blues': Counter({'normal': 1}), 'rock': Counter({'good': 1})})
>>> genredict['rock']['good']  # retrieve current score
1