Python is an object-oriented language as well! I believe the difference you are referring to is that Java is statically-typed and Python is dynamically-typed. See this for more information. This means that you don’t have to declare the variable type in Python.
[-2] would return only the second-last element, not both the second-last and the last elements.
Yes! This image might be helpful in visualizing this.
Another way to think about this is that
[n] (without a colon) where
n is an integer always specifies a certain element. On the other hand, a similar expression, but with a colon (like
[n:o:p], etc.) will return a list slice, which is a list containing zero or any positive integer number of elements.