2016-04-14 9 views
2

String ich eine Python-Liste wie folgt aussehen:obj in der Liste Anzahl der Zeichenfolge Get von

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

und ich möchte die Anzahl der Objekte, erhalten, die eine bestimmte Teilkette enthält (zB 2016-02-).

Eigentlich habe ich etwas, aber leider funktioniert es nur mit String Matches.

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

ich es durch Looping durch date_list, das Entfernen der letzten 2 Zeichen in zwei Schritten tun könnte, aber es wäre toll, eine elegantere Lösung zu verwenden, schätzen würde ich so wirklich, wenn jemand, wenn eine intelligentere Art und Weise zeigen könnte, es ist möglich.

Mein Ziel ist es, so etwas zu bekommen:

2016-01 1 
2016-02 2 
2016-03 2 
+0

@Kasramvd Sorry, ich das nicht brauchen. Ich habe die Frage aktualisiert. – gatto

Antwort

3

Sie können eine Liste Verständnis innerhalb collections.Counter verwenden:

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