ValueError: max() arg — пустая последовательность. Не знаю, почему происходит

Когда я компилирую его, появляется эта ошибка. ValueError: max() arg — пустая последовательность.

ag_averaged = [max(a_g[i_averaged[i]:i_averaged[i+1]]) for i in range(len(i_averaged)-1)]

Честно говоря, я понятия не имею, почему это происходит


person joacokp    schedule 19.11.2019    source источник
comment
Пожалуйста, укажите язык программирования!   -  person B. Go    schedule 20.11.2019
comment
python 3.7, я использую его в Spyder   -  person joacokp    schedule 20.11.2019
comment
вы можете поделиться сегментом кода?   -  person Ryhan Ahmed    schedule 30.07.2020


Ответы (2)


Как говорится в сообщении об ошибке, это связано с тем, что последовательность, которую вы передали max, имеет нулевую длину. В вашем случае i_averaged[i] в некоторых случаях может быть равно i_averaged[i + 1], что дает срез нулевой длины. Чтобы предотвратить возникновение исключения, вы можете указать значение по умолчанию для функции max:

max(a_g[i_averaged[i]:i_averaged[i+1]], default=None)

Теперь он возвращает None, когда список пуст. Конечно, это может не принести вам пользы, поскольку максимальное значение списка нулевой длины может не иметь смысла в вашем приложении. Теперь вы несете ответственность за то, чтобы значение имело смысл.

person Zecong Hu    schedule 19.11.2019

Пожалуйста, добавьте load() после импорта библиотеки

person Emeka Boris Ama    schedule 30.07.2020