按子串获取列表中的字符串obj的计数

时间:2016-04-14 23:31:17

标签: python

我有一个像这样的Python列表:

date_list = ['2016-01-11','2016-02-05','2016-02-24','2016-03-15','2016-03-12']

我希望得到包含特定子字符串的对象的计数(例如2016-02-)。

实际上我有一些东西,但不幸的是它只适用于字符串匹配。

print (dates1.count("2016-01-")) # doesn't work
print (dates1.count("2016-01-11")) # works

我可以通过循环遍历date_list,删除最后2个字符,分两步完成,但是使用更优雅的解决方案会很棒,所以如果有人能够展示更聪明的方法,我真的很感激这是可能的。

我的目标是得到这样的东西:

2016-01  1
2016-02  2
2016-03  2

1 个答案:

答案 0 :(得分:3)

您可以在collections.Counter中使用列表推导:

>>> from collections import Counter
>>> Counter([d.rsplit('-',1)[0] for d in date_list])
Counter({'2016-03': 2, '2016-02': 2, '2016-01': 1})