2016-04-14 45 views
2

我有一個Python列表如下:獲取字符串的計數OBJ在列表中串

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

@Kasramvd對不起,我不需要這個。我已經更新了這個問題。 – gatto

回答

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}) 
相關問題