我有一个从表中返回的日期列表:
pre_dates = [datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(2015, 4, 16, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0), datetime.datetime(9999, 9, 9, 0, 0)]
如您所见,它们的格式为datetime.datetime(YYYY, M, DD, H, M)
。我基本上想要从列表中删除所有datetime.datetime(9999, 9, 9, 0, 0)
项目。个别日期实际上等于9999-09-09 00:00:00
所以我一直在尝试以下,但它总是在我的syntax error: invalid syntax
声明中抛出if
。这有什么问题?
for date in pre_dates:
if date = 9999-09-09 00:00:00:
pre_dates.remove(date)
# also tried if date = datetime.datetime(9999, 9, 9, 0, 0):
# same error
1)使用==
而不是=
2)您可以直接将它与datetime
对象进行比较
for date in pre_dates:
if date == datetime.datetime(9999, 9, 9, 0, 0):
pre_dates.remove(date)
for date in copy(pre_dates):
if date == datetime.datetime(9999, 9, 9, 0, 0):
pre_dates.remove(date)
这解决了3个问题。