2015-03-02 100 views
0

如何在计数中进行表达?例如:按日期计算>日期

# 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 

回答

5
>>> 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

布尔值(和表达式)具有有效的01数值,所以你可以只添加了一堆人了:

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