按日期计算>日期
问题描述:
如何在计数中进行表达?例如:按日期计算>日期
# equivalence
l = [1,2,2,3,4]
l.count(2)
2
# greater than date
l = [datetime.datetime(2014, 1, 1, 0, 0), datetime.datetime(2015, 1, 1, 0, 0)]
l.count('date is greater than '2014-02-01')
1
答
>>> import datetime
>>> l = [datetime.datetime(2014, 1, 1, 0, 0), datetime.datetime(2015, 1, 1, 0, 0)]
>>> sum(1 for d in l if d > datetime.datetime(2014, 2, 1, 0, 0))
1
例如表达:
l.count(2)
不一样:
sum(1 for v in l if v == 2)
但要做到你要求什么,我们需要更换==
导致上述解决方案。
答
布尔值(和表达式)具有有效的0
或1
数值,所以你可以只添加了一堆人了:
dates = [datetime.datetime(2014, 1, 31, 0, 0),
datetime.datetime(2014, 2, 1, 0, 0),
datetime.datetime(2014, 2, 2, 0, 0)]
cutoff = datetime.datetime(2014, 2, 1, 0, 0)
print(sum(d > cutoff for d in dates)) # --> 1