我有一个像这样的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
答案 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})