Semua jawaban lain, dan terutama tentang pemahaman daftar, bagus. Tetapi hanya untuk menjelaskan kesalahan Anda:
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())
aadalah anggota daftar Anda, bukan indeks. Apa yang bisa Anda tulis adalah ini:
[...]
for a in lines:
strip_list.append(a.strip())
Komentar penting lainnya: Anda dapat membuat daftar kosong dengan cara ini:
strip_list = [0] * 20
Tapi ini tidak begitu berguna, karena .append menambahkan barang ke daftar Anda. Dalam kasus Anda, tidak berguna untuk membuat daftar dengan nilai defaut, karena Anda akan membuatnya item per item saat menambahkan string yang dilucuti.
Jadi kode Anda harus seperti:
strip_list = []
for a in lines:
strip_list.append(a.strip())
Tapi, yang pasti, yang terbaik adalah yang ini, karena ini persis sama:
stripped = [line.strip() for line in lines]
Jika Anda memiliki sesuatu yang lebih rumit dari sekedar a .strip, letakkan ini dalam sebuah fungsi, dan lakukan hal yang sama. Itulah cara yang paling mudah dibaca untuk bekerja dengan daftar.
strip_list19 kali kemudian menambahkan garis yang dilucuti. Kode itu memiliki bau yang sangat buruk tentangnya. Juga jika Anda mendapatkan barang itu dari sebuah file, Anda harus menghapusnya saat masuk - membuat daftar besar kemudian memasukkannya ke dalam daftar besar lainnya bukanlah ide yang baik. Juga 2, kode Anda tidak harus bergantung pada mengetahui panjang kata / baris terpanjang. Mundur sedikit - apa yang ingin Anda capai? Apa yang akan kamu lakukanstrip_list?