2016-04-14 38 views
2

altkatarıyla listede obj dize sayısını alın:Böyle bir Python listesi var

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

ve ben (örneğin 2016-02- için) Belirli bir alt içeren nesnelerin sayısını almak istiyorum.

Aslında bir şeyim var, ama maalesef yalnızca dize eşleşmeleriyle çalışıyor.

print (dates1.count("2016-01-")) # doesn't work 
print (dates1.count("2016-01-11")) # works 
ben son 2 karakter kaldırarak, date_list döngü tarafından iki adımda yapabileceğini, ama biri akıllı bir yolunu eğer göstersek çok daha zarif bir çözüm kullanmak iyi olurdu, bu yüzden gerçekten takdir ediyorum

Mümkün.

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

@Kasramvd Üzgünüm, buna ihtiyacım yok

Amacım böyle bir şey elde etmektir. Soruyu güncelledim. – gatto

cevap

3

Sen collections.Counter içinde bir liste anlama kullanabilirsiniz::

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