首页 > 解决方案 > 'TypeError: 'datetime.datetime' object is not iterable' 尝试将日期列表与单个日期进行比较时

问题描述

我有一个这样的嵌套列表:

nl = [['a', datetime.datetime(2020, 2, 7, 0, 0)], 
      ['b', datetime.datetime(2020, 2, 7, 0, 0)],
      ['c', datetime.datetime(2020, 2, 5, 0, 0)], 
      ['d', datetime.datetime(2020, 2, 4, 0, 0)] 

还有一个像这样的日期:

date_today = datetime.date(2020, 2, 6)

我想删除所有包含比 date_today 更早的日期的子列表。

像这样:

date_l = []
for line in nl:
    if line[1] > date_today:
        date_l.append[line]

但是我收到错误:

TypeError: 'datetime.datetime' object is not iterable

我该如何解决这个问题?

标签: pythondatetime

解决方案


使用下面的代码

        nl = [['a', datetime.datetime(2020, 2, 7, 0, 0)],
              ['b', datetime.datetime(2020, 2, 7, 0, 0)],
              ['c', datetime.datetime(2020, 2, 5, 0, 0)],
              ['d', datetime.datetime(2020, 2, 4, 0, 0)]]

        date_today = datetime.datetime(2020, 2, 6,0,0)
        date_l = []
        for line in nl:

            if line[1] > date_today:
                date_l.append(line)
        print(date_l)

结果:[['a', datetime.datetime(2020, 2, 7, 0, 0)], ['b', datetime.datetime(2020, 2, 7, 0, 0)]]


推荐阅读