python for循环如果数据重复只显示一个

时间:2018-04-20 02:04:30

标签: python django for-loop

你好新手python学习者在这里。 我有点困惑,我有这样的数据


    attendance = [
        datetime.datetime(2018, 4, 1, 7, 01),
        datetime.datetime(2018, 4, 2, 7, 01),
        datetime.datetime(2018, 4, 3, 7, 01),
        datetime.datetime(2018, 4, 4, 7, 01),
        datetime.datetime(2018, 4, 5, 7, 01),
        datetime.datetime(2018, 4, 5, 7, 21),
        datetime.datetime(2018, 4, 6, 7, 01),
        datetime.datetime(2018, 4, 7, 7, 01),
    ]

并且我想要显示它如果天重复或偶然有两次它将忽略另一个并且只显示一个有小时和一个分钟低于另一个。

在这种情况下,我有2个数据在

上重复

     datetime.datetime(2018, 4, 5, 7, 01),
     datetime.datetime(2018, 4, 5, 7, 21)

我想要它唯一的节目


    datetime.datetime(2018, 4, 5, 7, 01)

因为小时/分钟低于其他

我喜欢这个


    j = datetime.datetime(year,month,day,hour,minute)

    for i in attendance:
        if i == j:
            do nothing/skip
        else
            print the data

        j = j

但它打印所有数据,而不是我想要的。

2 个答案:

答案 0 :(得分:0)

所以这里的问题是这两个数据不等同:

datetime.datetime(2018, 4, 5, 7, 01),
datetime.datetime(2018, 4, 5, 7, 21)

因为它们在分钟值上有所不同。所以==会说他们是不同的。

j = datetime.datetime(year,month,day,hour,minute)

for i in attendance:
    if i.year == j.year and i.month == j.month and i.day == j.day:
        pick the earlier (pseudocode)
    else
        print the data

    j = i

答案 1 :(得分:0)

日期时间提供日期获取功能,请参阅datetime.date()。只需比较日期