Как убрать дату в списке по минутам? - PullRequest
0 голосов
/ 30 января 2020

Мы работаем с Python 3, где у нас есть список даты и времени, который выглядит следующим образом:

first_datetime = {2019-08-08 14:00:00, 2019-08-08 14:10:00, 2019-08-08 14:20:00, 2019-08-08 14:30:00, 2019-08-08 14:40:00, 2019-08-08 14:50:00, 2019-08-08 15:00:00}

Мы хотим только добавлять даты, где минуты в дате и времени равны 00 , 20 или 40, в новый список.

Поэтому приведенный выше список должен выглядеть следующим образом:

new_datetime_list = {2019-08-08 14:00:00, 2019-08-08 14:20:00, 2019-08-08 14:40:00, 2019-08-08 15:00:00}

Наша программа выглядит следующим образом:

for i in range(len(first_datetime)):
    time = datetime.datetime.strptime(first_datetime[i], '%Y-%m-%d %H:%M:%S')
    if time != x:
        new_datetime_list.append(first_datetime[i])

Мы представляем, что можем сделать что-то вроде:

for i in range(len(first_datetime)):
    time = datetime.datetime.strptime(first_datetime[i], '%Y-%m-%d %H:%M:%S')
    if time != x and time != CAN'T CONTAIN 10, 30, 50 IN MINUTES:
        new_datetime_list.append(first_datetime[i])

Хотя мы не знаем, как это сделать, мы публикуем этот пост.

Ответы [ 2 ]

1 голос
/ 30 января 2020

Вы можете проверить минуты, используя time.minute in [0, 20, 40], чтобы ваш фрагмент кода мог выглядеть как

for i in range(len(first_datetime)):
    time = datetime.datetime.strptime(first_datetime[i], '%Y-%m-%d %H:%M:%S')
    if time != x and time.minute in [0, 20, 40]:
        new_datetime_list.append(first_datetime[i])

(Я сохранил условие time != x, не уверен, что оно вам нужно для чего-то другого, вы не упомянул) кстати, вы можете упростить способ итерации по массиву, не используя индексы, подобные этому:

for str_datetime in first_datetime:
    time = datetime.datetime.strptime(str_datetime, '%Y-%m-%d %H:%M:%S')
    if time != x and time.minute in [0, 20, 40]:
        new_datetime_list.append(str_datetime)
0 голосов
/ 30 января 2020

Вы можете использовать оператор minute с даты и времени:

import datetime
first_datetime = ['2019-08-08 14:00:00', '2019-08-08 14:10:00', '2019-08-08 14:20:00', '2019-08-08 14:30:00', '2019-08-08 14:40:00', '2019-08-08 14:50:00', '2019-08-08 15:00:00']
new_datetime_list = []

for i in first_datetime:
    time = datetime.datetime.strptime(i, '%Y-%m-%d %H:%M:%S').minute
    if (time == 20) | (time == 40) | (time == 0):
        new_datetime_list.append(i)

Вывод (print(new_datetime_list)):

['2019-08-08 14:00:00', '2019-08-08 14:20:00', '2019-08-08 14:40:00', '2019-08-08 15:00:00']
...