例如,如果我有一個像這樣的列表:[datetime.datetime(2016,5,1), datetime.datetime(2015,2,5)]
並且我希望從該列表中濾除2015條目。如何從datetime.datetime對象列表中篩選特定年份的行?
考慮這個列表包含很多條目,例如我只輸入了兩個條目。
例如,如果我有一個像這樣的列表:[datetime.datetime(2016,5,1), datetime.datetime(2015,2,5)]
並且我希望從該列表中濾除2015條目。如何從datetime.datetime對象列表中篩選特定年份的行?
考慮這個列表包含很多條目,例如我只輸入了兩個條目。
可以過濾與
lst=[datetime.datetime(2016,5,1),datetime.datetime(2015,2,5)]
filtered_list = [date for date in lst if date.year == 2015]
filtered_list得到過濾列表爲:
[datetime.datetime(2015, 2, 5, 0, 0)]
只需檢查year
屬性:
>>> some_dates = [datetime.datetime(2016,5,1), datetime.datetime(2015,2,5)]
>>> [x for x in some_dates if x.year != 2015]
[datetime.datetime(2016, 5, 1)]
如果你有一個很長的日期列表,跳過不想要的可以使用內置的迭代地完成Python 3中的函數或Python 2中的。
無論是哪種情況,都可以避免創建第二個可能也很長的列表。
import datetime
try:
from itertools import ifilter
except ImportError: # Python 3
ifilter = filter
dates = [datetime.datetime(2016,5,1), datetime.datetime(2015,2,5)]
for date in ifilter(lambda d: d.year != 2015, dates):
# do something with non-2015 date...
print(date) # -> 2016-05-01 00:00:00
的[我如何篩選根據給定的開始日期和結束日期包含日期的Python列表?(可能的複製http://stackoverflow.com/questions/31375873/how-do-i-filter -a-蟒蛇一覽含日期,根據到該賦予的啓動至今) –