jadalah daftar kosong, tetapi Anda mencoba menulis ke elemen [0]di iterasi pertama, yang belum ada.
Coba yang berikut ini sebagai gantinya, untuk menambahkan elemen baru ke akhir daftar:
for l in i:
j.append(l)
Tentu saja, Anda tidak akan pernah melakukan ini dalam praktik jika yang Anda inginkan adalah menyalin daftar yang ada. Anda baru saja melakukannya:
j = list(i)
Sebagai alternatif, jika Anda ingin menggunakan daftar Python seperti array dalam bahasa lain, maka Anda bisa membuat daftar sebelumnya dengan elemen-elemennya diatur ke nilai nol ( Nonedalam contoh di bawah), dan kemudian, menimpa nilai di posisi tertentu:
i = [1, 2, 3, 5, 8, 13]
j = [None] * len(i)
#j == [None, None, None, None, None, None]
k = 0
for l in i:
j[k] = l
k += 1
Yang perlu disadari adalah bahwa suatu listobjek tidak akan memungkinkan Anda untuk menetapkan nilai pada indeks yang tidak ada.
appendadalah solusi yang tepat untuk kasus penggunaan Anda, namun ada metode penyisipan pada daftar python yang dapat menyisipkan langsung ke posisi ke-i dalam daftar.j.insert(k, l)