#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.