0
Lists
(Input) number = 3 things = ["string", 0, [1, 2, number], 4, 4.56] print(things[1]) print(things[2]) print(things[2][2][4]) (Output) 0 [1, 2, 3] Traceback (most recent call last): File "..\Playground\", line 5, in <module> print(things[2][2][3]) TypeError: 'int' object is not subscriptable But when the input is number = 3 things = ["string", 0, [1, 2, number], 4, 4.56] print(things[1]) print(things[2]) print(things[2][2]) print(things[4]) Output is 0 [1, 2, 3] 3 4.56 Can someone tell me why it's not working?
2 Respuestas
+ 1
Let's look at what things[2][2][4] does:
It says: Go to the element in position 2 of things (we get: [1, 2, number]) then go to the element in position 2 of that element (we get number) then go to the element in position 4 of number. There is no element in position 4 of number. That is why you get an error
+ 1
the first bit wont work because you are trying to find an index of a 3 dimensional array when you are only using a 2 dimensional array and by trying to print things[2][2][4] it will only get as far as finding the 2nd index of the 2nd index of things which is 3 and it then tries to find the 4th index of 3 which will result in an error as an integer DOES NOT have an index as indexing can only be done with strings or arrays (lists)