0

для следующего кода:Численного Итерация Python

from array import * 
x=[] 
x.append(0.232) 
print (x) 
for i in range(25): 
x[i+1]=(1/(i+1))-5*x[i] 

У меня есть эта ошибка:

x[i+1]=(1/(i+1))-5*x[i] 
IndexError: list assignment index out of range 

Это может случаться, потому что я определил й быть пустым массивом. Но как определить массив и выполнить ту же операцию в противном случае?

ответ

0

list не предназначен для эффективных математических операций и поэтому лучше использовать массивы numpy для выполнения математических операций. Тем не менее, если вы хотите использовать список, вы можете определить список инициализированную n нуля, используя

x=[0]*n 
x[0] = 0.232 
x[1] = .... 
.... 

Помните, что многомерный list создан с использованием выше подхода будет ссылаться на тот же элемент в массиве! Например:

l = [0,0,0]*5 

будет создавать пять же list 'S внутри другого list не отдельны list' с. Так что это плохая идея создать многомерный массив, как это!

Лучше всего было бы создавать массивы, используя NumPy, используя следующий код:

from numpy import empty, zeros 
x = empty(n) # or # x = zeros(n) 
x[0] = 0.232 
x[1] = .... 
.... 

и

l = empty((3,5)) # or # l = zeros((3,5)) 

для массива с 3-х строк и 5 столбцов.

Смежные вопросы