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

在python中从日期范围中排除列表,python,pyspark,Python,Pyspark,我的日期范围为2019年1月20日至2019年1月30日,我有需要从该数据范围中排除的日期列表[]。有人能帮忙吗 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 an

我的日期范围为2019年1月20日至2019年1月30日,我有需要从该数据范围中排除的日期列表[]。有人能帮忙吗

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

我认为做这件事最简单的方法之一就是只产生不在你的表中的日期。这意味着您必须以如下方式修改生成器:

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 

加入
left\u anti