python - 如何计算字典列表中特定字典键的出现次数

标签 python python-2.7 dictionary count

我正在尝试计算指定键在我的听写列表中出现的次数。我已经使用 Counter()most_common(n) 对所有键进行计数,但如何找到特定键的计数?我有这段代码,目前无法使用:

def Artist_Stats(self, artist_pick):

    entries = TopData(self.filename).data_to_dict()

    for d in entries:
        x = d['artist']
        find_artist = Counter()
        print find_artist[x][artist_pick]

“entries”数据有大约 60k 个条目,看起来像这样:

[{'album': 'Nikki Nack', 'song': 'Find a New Way', 'datetime': '2014-12-03 09:08:00', 'artist': 'tUnE-yArDs'},]

最佳答案

您可以提取它,将其放入列表中,然后计算列表的长度。

key_artists = [k['artist'] for k in entries if k.get('artist')]
len(key_artists)

编辑:如果您的数据很大,使用生成器表达式可能会更好:

key_artists = (1 for k in entries if k.get('artist'))
sum(key_artists)

第二次编辑:

对于特定艺术家,您可以将 if k.get('artist') 替换为 if k.get('artist') == artist_pick

第三次编辑:如果您对推导式或生成器不满意,或者您觉得这样可以提高代码可读性,您也可以循环

n = 0  # number of artists

for k in entries:
  n += 1 if k.get('artist') == artist_pick else 0

关于python - 如何计算字典列表中特定字典键的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435614/

相关文章:

python - 字典迭代

python - Django REST Framework 分页在远程服务器上不起作用

Python:递归返回无值

python - 为什么这种解包参数不起作用?

java - 使用索引高效搜索单词

python - 使用 Expect 在远程机器上运行本地 Python 脚本

Python 适合给定输入的数据类型

python - 在 Python 中,为什么最低(最小)浮点值与最大浮点值的有效数字不同?

c++ - 如何在 C++ 中将类类型映射到该类的实例?

java - 将位图加载到数组中 (Java)