Стивен и U9 дали отличные решения.Я объясню, почему ваш код не работает.Обратите внимание, что множественные слова представляют собой список строк.Поэтому, когда вы вызываете for i in plural_words:
, вы перебираете слова в этом списке, и, таким образом, на каждой итерации вы получаете саму строку (а не число).Например:
Входные данные:
plural_words = ['bark','dog','cats']
for i in plural_words:
print(i)
Выходные данные:
bark
dog
cats
Поскольку на каждой итерации вы устанавливаете свой i как строку из списка, он неимеет смысл вызывать элемент списка, используя эту строку в качестве индекса (поскольку списки могут иметь только целочисленные индексы).Если бы я запустил ваш код выше, используя мой пример списка множественных слов, первая итерация, которую я бы назвал, - это множественное_слово ['bark'], которое даст мне конкретную ошибку, которую вы только что получили.Чтобы обойти эту проблему, вы можете использовать перечисление, как упомянуто в U9, или вы можете выполнять итерацию по всему диапазону длины вашего списка (так что я буду числом).Вот пример:
Ввод:
plural_words = ['bark','dog','cats']
for i in range(len(plural_words)):
print('i:', i)
print('word:', plural_words[i])
Выход:
i: 0
word: bark
i: 1
word: dog
i: 2
word: cats
В этом случае len(plural_words)
равен 3, так что вы на самом деле for i in range(3)
.