e=[]
entrada=input("Entrada de dades: ")
dades1=entrada.split("*")
for cad in dades1:
e=cad.split()
nom=e[0]
nTaron=e[2]
nPeixos=e[4]
nBlat=e[6]
Случай состоит в том, что я хочу распределить эти переменные, в которое он получается от array, но меня отпускает ошибка list index out of range. Я могу печатать список (e), но не могу сохранять стоимость в переменной.
Спасибо
Проблема состоит в том, что в одном из повторений цикла for
(Гєltima) у тебя нет данных, которых нужно обрабатывать.
Действительно, если он она, введенная, что ты даешь input()
, (как ты показал в комментарии) она lГ-nea p sid t 53 p 12 t 45 b 21 t 20 *
, так как первым, что ты делаешь, является один .split("*")
, это будет производить тебе список с двумя elmentos:
# Valor de dades1=
['sid t 53 p 12 t 45 b 21 t 20 ', '']
Первый раз, который ты повторяешь из-за этого списка, нет проблемы. cad
берет стоимость "sid t 53 p 12 t 45 b 21 t 20 "
и все в порядке. Но в следующей iteraciГіn cad
берет стоимость ""
(цепь vacГ - в), а следовательно split()
производит в e
список vacГ - в, и ahГ - ошибка.
Простой способ это предотвращать состоит в том, чтобы отпускать тебе элементы, у которых не есть ожидаемой длины:
entrada=input("Entrada de dades: ")
dades1=entrada.split("*")
for cad in dades1:
e=cad.split()
if len(e)<6:
continue
nom=e[0]
nTaron=e[2]
nPeixos=e[4]
nBlat=e[6]
Решение continue
способствует тому, чтобы он оставил эту iteraciГіn цикла и произошел со следующей. Или quizГЎs захоти сделать один break
(saldrГ - в цикла), или quizГЎs не повторять, а работать только с dades1[0]
. Это уже зависит от твоего случая использования.