Como funciona a indexação de listas?

Esta questão está em 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))

primeira impressão dá 0 segunda impressão dá p

Eu não posso descobrir porque, se você pudesse dar uma explicação, seria muito apreciado.

Obrigado a quem ajuda :)

questionAnswers(4)

yourAnswerToTheQuestion