Python — сравнение объекта datetime со следующим в списке

#python #list #datetime #compare

#python #Список #datetime #Сравнить

Вопрос:

Я просматриваю список, в котором хранятся объекты datetime, и сравниваю текущий элемент со следующим. У меня возникли проблемы с присвоением следующего элемента переменной.

Код:

 for p in Monray:
    if (MonBool == False):
        MonBool = True
        MonStartTimeBlock = p
        MonFirstPro = p
        Nextone = Monray[p 1]
  

Ошибка:

 unsupported operand type(s) for  : 'datetime.datetime' and 'int'
  

Кажется, он пытается добавить 1 int к объекту datetime, а не обращаться к элементу в «p 1».

Что я делаю не так?

Комментарии:

1. Вы на самом деле используете Nextone где-нибудь еще? Возможно, было бы проще просто удалить его. Помните, что p здесь относится к фактическому значению, а не к индексу.

2. Большое вам спасибо за объяснение. Я использую Nextone, но я не буду использовать его после приведенного ниже комментария 🙂

Ответ №1:

p это элемент, а не его индекс, поэтому вы не можете использовать p 1 для получения следующего элемента.

Вы можете использовать zip() для сопряжения элементов списка с фрагментом, начинающимся со второго элемента.

 for first_day, next_day in zip(Monray, Monray[1:]):
    # code that uses the days
  

Комментарии:

1. Эй, чувак, спасибо за ответ. Я попробую zip (), спасибо! Здорово изучать новые вещи с python.