Индекс строки вне диапазона (отличается по длине ошибки) - PullRequest
0 голосов
/ 02 октября 2019

Проблема в том, что количество строк в списке l1 больше, чем число str в your_name_no, поэтому, когда я пытаюсь сопоставить индекс с символами, он совпадает с ошибкой из-за разницы в длине, которую я пыталсяисключить использование функции if, но она не сработала.

An image of my code

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Эта ошибка возникает из-за того, что len списка или строки считает, начиная с 1, а не с 0, в отличие от работы индексов. Например:

a = 'hello'
print(len(a))
Output:
5

Однако, если бы вы перебрали индекс с 5 значениями, вы бы получили ошибку индекса, потому что a[5] не существует, в этой строке нет пятого элемента (так как онначинается с 0 и продолжается до 4).

Вы можете решить эту проблему, либо изменив <= на <, как предложено @Barmar, либо добавив -1 при применении критериев в цикле for:

for r in range(0,len(l1)):
  if r < len(your_name):
     print(r, your_name[r]

Или:

for r in range(0,len(l1)):
   if r <= (len(your_name)-1):
     print(r, your_name[r]
0 голосов
/ 02 октября 2019

Вы должны установить условие if следующим образом:

if r < len(your_name)

, поскольку последний индекс меньше длины списка на 1, так как списки начинаются с индекса 0.

...