列表从python中的日期范围中排除

问题描述 投票:0回答:1

我的日期范围是从20.01.2019到30.01.2019,并且我具有需要从该数据范围中排除的日期列表[]。有人可以帮忙吗?

from datetime import timedelta, date, datetime  

def daterange(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)

#Start and End is a range of dates. 
start = date(2019, 1, 20)
end = date(2019, 1, 30)

for single_date in daterange(start, end):
  print(single_date)

列出以排除这些日期:

mvv_list[]
print(*mvv_list, sep='\n')

列出结果:

Row(date=datetime.date(2019, 01, 22))
Row(date=datetime.date(2019, 01, 23))
python pyspark
1个回答
0
投票

我想做的最简单的方法之一就是只产生不在排除范围内的日期。这意味着您将必须以这种方式修改生成器:

def daterange(start_date, end_date, exclude):
    # where exclude is the list of dates you don't want
    for n in range(int ((end_date - start_date).days)):
        next_date = start_date + timedelta(n)
        if next_date not in exclude:
            yield next_date 
© www.soinside.com 2019 - 2024. All rights reserved.