I am trying to use two foor loops for a variable with that has list within a list, but this code doesn’t work. I get the error: list index out of range
D=[[12,10,13,14,13,-2,17,20,19,14],[9,-5,11,20,10,16,13,22,15,12]] # Replace negative values in demand list by 0 for i in D: for j in i: if i[j] < 0: D[i][j] = 0
Advertisement
Answer
In your loop, j
is not an index, it’s the element, you can use range
to loop over the indices (same thing about i
, use i[j]
, not D[i][j]
, since i
is a list):
for i in D: for j in range(len(i)): if i[j] < 0: i[j] = 0
Alternatively, you can use a list comprehension:
D = [[x if x >= 0 else 0 for x in d] for d in D]