元组列表中的Python计数

元组列表中的Python计数,python,list,count,tuples,Python,List,Count,Tuples,基本上,我有一个很长的元组列表,上面有作者的名字和下面的年份 a =[('Volozhyn AI', 2007), ('Lam KL', 2010), ('Boudreau NG', 2006), ('Tsuchitani M', 1997), ('Zheng LP', 1997), 这个列表要长得多,我需要在这个列表中计算一年发生的次数,以便输出列表 b = [(1970, x times), (1971, y times), etc 我发现函数计数器对列表中的所有元素

基本上,我有一个很长的元组列表,上面有作者的名字和下面的年份

a =[('Volozhyn AI', 2007),
 ('Lam KL', 2010),
 ('Boudreau NG', 2006),
 ('Tsuchitani M', 1997),
 ('Zheng LP', 1997),
这个列表要长得多,我需要在这个列表中计算一年发生的次数,以便输出列表

b = [(1970, x times),
     (1971, y times), etc 
我发现函数计数器对列表中的所有元素进行计数,并给出类似的输出。然而,我似乎不能让计数器只计算年份。 因此,我要么用年份或另一种方法列出一个新的清单。 建议

from collections import Counter
Counter(elem[1] for elem in a)
将给予

Counter({1997: 2, 2010: 1, 2006: 1, 2007: 1})
上面的代码提取每个元素中的第二个元素[索引1],然后计数

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
将给予

Counter({1997: 2, 2010: 1, 2006: 1, 2007: 1})
上面的代码提取每个元素中的第二个元素[索引1],然后计数

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)]
使用a中i的
i[1]可以得到仅包含年份的列表(
[2007,2010,2006,1997,1997]
)。然后,使用
计数器对它们进行计数
,并将其转换为一个列表,以适合所需的输出

输出:

[(2010, 1), (1997, 2), (2006, 1), (2007, 1)]

使用a中i的
i[1]可以得到仅包含年份的列表(
[2007,2010,2006,1997,1997]
)。然后,您使用
计数器对它们进行计数,并将其转换为符合您所需输出的列表。

您是否尝试过“仅使用年份创建新列表”?这可能是最直接的方法。我能简单地从这个列表中创建它吗?你有没有尝试过“用年份来制作一个新的列表”?这可能是最直接的方法。我能从这个列表中简单地创建它吗?如果你要发布一个答案,最好也提供一个关于它的解释。代码转储不是最好的方法。好的答案不仅应该包含代码,还应该包含解释。请展示您代码的输出示例,以便OP可以看到您在这里所做的操作。此代码的第一个修订版完全是垃圾,即使在其他人的帮助下,您仍然没有提供有用的解释回滚到包含这一行。我正在尝试格式化您提供的示例输出。必须与您的编辑重叠。然而,你应该看看被接受的答案。有一个完整的解释,为什么代码的工作方式是这样的。这正是很多人想要的。谢谢你的启发。下一次我会跟进。如果你要发布一个答案,最好也提供一个解释。代码转储不是最好的方法。好的答案不仅应该包含代码,还应该包含解释。请展示您代码的输出示例,以便OP可以看到您在这里所做的操作。此代码的第一个修订版完全是垃圾,即使在其他人的帮助下,您仍然没有提供有用的解释回滚到包含这一行。我正在尝试格式化您提供的示例输出。必须与您的编辑重叠。然而,你应该看看被接受的答案。有一个完整的解释,为什么代码的工作方式是这样的。这正是很多人想要的。谢谢你的启发。下一次我会跟进。