Как решить индекс списка вне диапазона ошибок?(Извините, если это не очень хороший вопрос, но я не могу найти ответы) - PullRequest
0 голосов
/ 11 декабря 2018

Вот ошибка, которую я получаю

     word[i] += len(words)
 IndexError: list index out of range

, а вот код

word=[]
i=1
with open("poem.txt", "r") as f:
    for line in f:
        words=line.split()
        word[i] += len(words)
        i += 1

for i in range(1,20):
    print("For the line "+i+" we have "+word[i]+" words")

То, что я хочу получить в качестве вывода, выглядит как

Для строки 1 у нас есть 10 слов

Для строки 2 у нас есть 20 слов

и так далее ...

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

в первый раз, когда слово запуска кода будет иметь 0 элементов, но i равно 1, и поэтому в позиции 1 нет элемента.

Попробуйте начать с i = 0

word=[]
i=0
0 голосов
/ 11 декабря 2018

Это связано с тем, как вы обращаетесь к массиву.Есть лучший подход:

word=[]
with open("poem.txt", "r") as f:
    for line in f:
        words=line.split()
        word.append(len(words))

for idx, count in enumerate(word):
    print("For the line " + (idx + 1) + " we have " + count + " words")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...