Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does list indexing work?

This question is in python:

battleships = [['0','p','0','s'],
               ['0','p','0','s'],
               ['p','p','0','s'],
               ['0','0','0','0']]
def fun(a,b,bships): 
    c = len(bships)
    return bships[c-b][a-1]

print(fun(1,1,battleships))
print(fun(1,2,battleships))

first print gives 0 second print gives p

I can't work out why, if you could give an explanation it would be much appreciated.

Thank you to those who help :)

like image 315
Emma Avatar asked Oct 21 '25 12:10

Emma


1 Answers

Indexing starts at 0. So battleships contains items at indexes 0, 1, 2, 3.

First len(bships) gets the length of the list of lists battleships, which is 4.

bships[c-b][a-1] accesses items in a list through their index value. So with your first call to the function:

print(fun(1,1,battleships))

It's bships[4-1][1-1] which is bships[3][0] which is ['0','0','0','0'][0] which is 0

like image 75
TerryA Avatar answered Oct 23 '25 03:10

TerryA



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!