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