Ответ 1
j
- пустой список, но вы пытаетесь записать элемент [0]
в первую итерацию, которая еще не существует.
Попробуйте вместо этого добавить новый элемент в конец списка:
for l in i:
j.append(l)
Обратите внимание на следующий код:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
print j
Выход (Python 2.6.6 на Win 7 32-бит):
> Traceback (most recent call last):
> j[k] = l IndexError: list assignment index out of range
Я думаю, что это простое, я не понимаю. Может кто-нибудь его очистить?
j
- пустой список, но вы пытаетесь записать элемент [0]
в первую итерацию, которая еще не существует.
Попробуйте вместо этого добавить новый элемент в конец списка:
for l in i:
j.append(l)
Другой вариант - инициализировать j
:
j = [None] * len(i)
Сделайте j.append(l)
вместо j[k] = l
и вообще избегайте k
.
Вы также можете использовать понимание списка:
j = [l for l in i]
или сделайте копию с помощью заявления:
j = i[:]
j.append(l)
Также избегайте использования "L" в нижнем регистре, потому что их легко путать с 1
Я думаю, что метод Python insert - это то, что вы ищете:
Вставляет элемент x в положение i. list.insert (я, х)
array = [1,2,3,4,5]
array.insert(1,20)
print(array)
# prints [1,2,20,3,4,5]
Вы можете использовать словарь (похожий на ассоциативный массив) для j
i = [1, 2, 3, 5, 8, 13]
j = {} #initiate as dictionary
k = 0
for l in i:
j[k] = l
k += 1
print j
напечатает:
{0: 1, 1: 2, 2: 3, 3: 5, 4: 8, 5: 13}
Еще один способ:
j=i[0]
for k in range(1,len(i)):
j = numpy.vstack([j,i[k]])
В этом случае j
будет массивом numpy
В Python с массивом вы можете только добавить и добавить элемент в массив
Может быть, вам нужно расширить()
i=[1,3,5,7]
j=[]
j.extend(i)
Поскольку вы назначили j как пустой список, и в цикле вы пытаетесь найти 0-е значение индекса j, которое, безусловно, не будет работать. Пытаться j.append (л) Это будет работать