我是python和编程的新手,所以请善待.我正在尝试分析带有音乐信息的csv文件,并返回收听最多的前n个乐队.从下面的代码中,每首歌曲是一个列表中的dict条目,格式如下:
[{'album': 'Exile on Main Street', 'song': 'Happy', 'datetime': '3 Dec 2014 14:08', 'artist': 'The Rolling Stones'}, {'album': 'II', 'song': 'Black Dog', 'datetime': '1 Dec 2014 08:08', 'artist': 'Led Zepplin'}]
from collections import Counter
def count_artist_plays(filename):
with open(filename, 'r') as data:
header = data.readline().strip().split(',')
entries = []
for line in data:
entry = line.strip().split(',')
listens = {}
for info, type in enumerate(header):
listens[type] = entry[info]
entries.append(listens)
for d in entries:
arts = d['artist']
c = Counter(arts)
print c.most_common(10)
Run Code Online (Sandbox Code Playgroud)
我如何得到最常见的字符串(波段)而不是我在下面得到的字符细分?
[('s', …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算指定键出现在我的dicts列表中的次数.我已经使用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]
Run Code Online (Sandbox Code Playgroud)
"条目"数据有大约60k条目,看起来像这样:
[{'album': 'Nikki Nack', 'song': 'Find a New Way', 'datetime': '2014-12-03 09:08:00', 'artist': 'tUnE-yArDs'},]
Run Code Online (Sandbox Code Playgroud)