基本上我有很多带有作者姓名的元组列表和一年如下
a =[('Volozhyn AI', 2007),
('Lam KL', 2010),
('Boudreau NG', 2006),
('Tsuchitani M', 1997),
('Zheng LP', 1997),
列表要长得多,我需要计算此列表中每年发生的次数,以便输出列表
b = [(1970, x times),
(1971, y times), etc
我发现函数Counter计算列表中的所有元素并给出类似的输出。但是,我似乎无法让Counter只算数年。 因此,我必须制作一个仅包含年份或其他方法的新列表。 建议?
答案 0 :(得分:3)
from collections import Counter
a =[('Volozhyn AI', 2007),
('Lam KL', 2010),
('Boudreau NG', 2006),
('Tsuchitani M', 1997),
('Zheng LP', 1997)]
b = (Counter(i[1] for i in a)).items()
print b
输出:
[(2010, 1), (1997, 2), (2006, 1), (2007, 1)]
使用i[1] for i in a
,您只能获得列表([2007, 2010, 2006, 1997, 1997]
)。然后,您使用Counter
计算它们并将其转换为适合您所需输出的列表。
答案 1 :(得分:0)
from collections import Counter
Counter(elem[1] for elem in a)
会给出
Counter({1997: 2, 2010: 1, 2006: 1, 2007: 1})
上面的代码选取每个元素中的第二个元素[索引1],然后计算..