¿Cómo funciona la indexación de listas?

Esta pregunta está en 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))

primera impresión da 0 segunda impresión da p

No puedo entender por qué, si pudiera dar una explicación sería muy apreciado.

Gracias a los que ayudan :)

Respuestas a la pregunta(4)

Su respuesta a la pregunta