j
jest pustą listą, ale próbujesz napisać do elementu [0]
w pierwszej iteracji, która jeszcze nie istnieje.
Zamiast tego spróbuj wykonać następujące czynności, aby dodać nowy element na końcu listy:
for l in i:
j.append(l)
Oczywiście nigdy nie zrobiłbyś tego w praktyce, gdyby wszystko, co chciałeś zrobić, to skopiować istniejącą listę. Po prostu zrobiłbyś:
j = list(i)
Alternatywnie, jeśli chcesz używać listy Python jako tablicy w innych językach, możesz wstępnie utworzyć listę z jej elementami ustawionymi na wartość zerową ( None
w poniższym przykładzie), a później zastąpić wartości w określonych pozycjach:
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
Należy zdać sobie sprawę, że list
obiekt nie pozwoli ci przypisać wartości do indeksu, który nie istnieje.
append
jest właściwym rozwiązaniem dla twojego przypadku użycia, jednak istnieje metoda wstawiania na liście python, która może wstawiać bezpośrednio do i-tej pozycji na liście.j.insert(k, l)