IndexError: list assignment index out of range
I can not fix.list assignment index out of range. Can you help me ?
z = [0.5, 0.4]
P = 500 #pisa
T = 400 # Ranking
Tc = [343.01, 549.58]
Pc = [667.03, 706.62]
w = [0.011, 0.099]
kij = [[0, -0.0026], [-0.0026, 0]]
Tr = []
Pr = []
k = []
for i in range(0, 1):
Tr[i] = T / Tc[i]
Pr[i] = P / Pc
k[i] = math.exp(5.37 * (1 w[i]) * (1 - (1 / Tr[i]))) / (Pr[i])
print(k)
error:
Traceback (most recent call last):
File ".../tmp.py", line 13, in <module>
Tr[i] = T / Tc[i]
IndexError: list assignment index out of range
CodePudding user response:
Tr
, Pr
and k
are empty lists. Assigning to an index in them will generate an error.
>>> a = []
>>> a[0] = 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
Try initializing these lists with length 1.
Tr = [None]
# etc.
CodePudding user response:
Tr
is initially empty, so when you try to assign Tr[0] = T/Tc[i]
this fails as there is no index 0
.
Use append
:
Tr.append(T/Tc[i])
Same thing for Pr
and k
.
NB. for i in range(0, 1)
is just i = 0
. You can save the loop. Or maybe you meant for i in range(len(Tc)):
?