@terpizavr
В эволюционной цепи, я перед планктоном

Как решить проблему со списком?

Объясните как "побороть" ошибку
s=['650-030-005', '650-030-700','650-530']
x=[]
for y in s:
    if y[7]== "-":
        x.append(y)
    else:
        continue
print (x)

File "d:\раб\work\test1.py", line 4, in <module>
    if y[7]== "-":
IndexError: string index out of range

Есть ли способ?
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
yupiter7575
@yupiter7575
Python программист
'650-530'

Учимся считать - 0,1,2,3,4,5,6 - всего 7. Вы пишите восьмой символ, либо замените на нормальное либо try except
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
SoreMix
@SoreMix Куратор тега Python
yellow
В 650-530 7 символов, вы пытаетесь получить восьмой
Ответ написан
можешь поставить обработчик ошибок(try except) типа если нет ошибки молодец есть ошибка не молодец
Ответ написан
Jourloy
@Jourloy
NodeJS разработчик
Вот так ошибки не должно быть
s=['650-030-005', '650-030-700','650-530']
x=[]
for y in s:
    if y.length >= 8 and y[7]== "-":
        x.append(y)
    else:
        continue
print (x)
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Обращайтесь к последнему символу по индексу -1: y[-1]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы