j
adalah 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 ( None
dalam 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 list
objek tidak akan memungkinkan Anda untuk menetapkan nilai pada indeks yang tidak ada.
append
adalah 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)