Ошибка типа: объект «Нетип» не может быть повторен для проблемы малого диапазона, над которой я пытаюсь работать

#python #data-science

Вопрос:

Я учусь писать код. Довольно новичок во всем этом. Но почему небольшой фрагмент кода выдает мне ошибку «Ошибка типа: объект NoneType не повторяется». Я нахожусь в Юпитере

 ranges = []
for i in range(len(Y)):
     x = max(Y[i]) - min(Y[i])
     ranges.append(x)
 

Заранее спасибо!

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

1. Что такое Y ? Это имеет None ценность

2. Y[i] является None для одного из значений i . Найдите его и исправьте. Вы можете добавить if Y[i] is None: print(i) в свой цикл, чтобы найти его.

Ответ №1:

Как указывает @TomKarzes, Y[i] None по крайней мере для одного значения i . Кроме того, обратите внимание, что в этом сценарии у вас нет причин для повторной индексации i : просто проиндексируйте элементы Y instead, поскольку это добавляет удобочитаемость. Объединив это с чеком None , мы получим:

 ranges = []
for item in Y:
    if item is None:
        pass # this means do nothing. You could also append None
    else:
        x = max(item) - min(item)
        ranges.append(x)
 

Наконец, я отмечу, что в Python вы можете сделать все это всего за одну строку, используя понимание списка с помощью

 ranges = [max(item) - min(item) for item in Y if item is not None]