Python 从列表中删除重复的日期时间日期

Python 从列表中删除重复的日期时间日期,python,datetime,Python,Datetime,我创建了一个日期列表,如下所示: begin=dt.date(2010,1,1) back=pd.date_range(end = begin, periods = 11).to_pydatetime().tolist() forward=pd.date_range(start = begin, periods = 11).to_pydatetime().tolist() 然后,我将此日期列表附加到一个新变量: date_centered=[] date_centered.append(bac

我创建了一个日期列表,如下所示:

begin=dt.date(2010,1,1)
back=pd.date_range(end = begin, periods = 11).to_pydatetime().tolist()
forward=pd.date_range(start = begin, periods = 11).to_pydatetime().tolist()
然后,我将此日期列表附加到一个新变量:

date_centered=[]
date_centered.append(back)
date_centered.append(forward)
date_centered
输出:

[[datetime.datetime(2009, 12, 22, 0, 0),
  datetime.datetime(2009, 12, 23, 0, 0),
  datetime.datetime(2009, 12, 24, 0, 0),
  datetime.datetime(2009, 12, 25, 0, 0),
  datetime.datetime(2009, 12, 26, 0, 0),
  datetime.datetime(2009, 12, 27, 0, 0),
  datetime.datetime(2009, 12, 28, 0, 0),
  datetime.datetime(2009, 12, 29, 0, 0),
  datetime.datetime(2009, 12, 30, 0, 0),
  datetime.datetime(2009, 12, 31, 0, 0),
  datetime.datetime(2010, 1, 1, 0, 0)],
 [datetime.datetime(2010, 1, 1, 0, 0),
  datetime.datetime(2010, 1, 2, 0, 0),
  datetime.datetime(2010, 1, 3, 0, 0),
  datetime.datetime(2010, 1, 4, 0, 0),
  datetime.datetime(2010, 1, 5, 0, 0),
  datetime.datetime(2010, 1, 6, 0, 0),
  datetime.datetime(2010, 1, 7, 0, 0),
  datetime.datetime(2010, 1, 8, 0, 0),
  datetime.datetime(2010, 1, 9, 0, 0),
  datetime.datetime(2010, 1, 10, 0, 0),
  datetime.datetime(2010, 1, 11, 0, 0)]]

我想删除重复的日期,在本例中为2010,1,1。我该怎么做?

您可以获取两个列表的集合(这将消除每个列表中的重复项),并从所有可能的值(A或B)中减去两个集合(A和B)的公共元素。这将只返回唯一的元素

list((set(back) | set(forward)) - (set(back) & set(forward)))

您可以获取两个列表的集合(这将消除每个列表中的重复项),并从所有可能的值(A或B)中减去两个集合(A和B)的公共元素。这将只返回唯一的元素

list((set(back) | set(forward)) - (set(back) & set(forward)))

您可以使用Python
set
s删除重复项:

set\u back=set(back)
向前设置=向前设置(向前)
#通过删除“向前设置”中的元素更新“向后设置”`
向后设置。差异更新(向前设置)
#将'set_back'和'set_forward'转换回列表
#并将它们添加到“以日期为中心”的结果中
以日期为中心=[列表(向后设置)、列表(向前设置)]
但是,考虑到您的第一行代码,您可能只想通过将其从
返回
列表中删除来删除额外的日期:

begin=dt.日期(2010,1,1)
back=pd.date\u range(end=begin,periods=11)。to\u pydatetime().tolist()
forward=pd.date\u range(start=begin,periods=11)。to\u pydatetime().tolist()
back.pop()#删除最后一项
以日期为中心=[向后,向前]

您可以使用Python
set
s删除重复项:

set\u back=set(back)
向前设置=向前设置(向前)
#通过删除“向前设置”中的元素更新“向后设置”`
向后设置。差异更新(向前设置)
#将'set_back'和'set_forward'转换回列表
#并将它们添加到“以日期为中心”的结果中
以日期为中心=[列表(向后设置)、列表(向前设置)]
但是,考虑到您的第一行代码,您可能只想通过将其从
返回
列表中删除来删除额外的日期:

begin=dt.日期(2010,1,1)
back=pd.date\u range(end=begin,periods=11)。to\u pydatetime().tolist()
forward=pd.date\u range(start=begin,periods=11)。to\u pydatetime().tolist()
back.pop()#删除最后一项
以日期为中心=[向后,向前]