Все остальные ответы, и в основном о понимании списка, великолепны.Но просто для объяснения вашей ошибки:
strip_list = []
for lengths in range(1,20):
strip_list.append(0) #longest word in the text file is 20 characters long
for a in lines:
strip_list.append(lines[a].strip())
a
является членом вашего списка, а не индекса.Вот что вы можете написать:
[...]
for a in lines:
strip_list.append(a.strip())
Еще один важный комментарий: вы можете создать пустой список следующим образом:
strip_list = [0] * 20
Но это не так полезно, как .append
добавляет материал в ваш список.В вашем случае не полезно создавать список со значениями по умолчанию, так как вы будете создавать его для каждого элемента при добавлении разделенных строк.
Таким образом, ваш код должен выглядеть так:
strip_list = []
for a in lines:
strip_list.append(a.strip())
Но, безусловно, лучшим из них является этот, так как это одно и то же:
stripped = [line.strip() for line in lines]
Если у вас есть что-то более сложное, чем просто .strip
, поместите это в функцию,и сделай то же самое.Это самый читаемый способ работы со списками.