If a street with houses is an analogy for an array with elements, then house number is analogy for index. However, Python uses numbers from zero.
The built in sequence types in Python (ver. 3) are strings (sequences of unicode characters), bytes (sequences of small integers from zero to 255, i.e. of byte values), tuples (sequences of whatever elements), and lists (sequences of whatever elements). All of them are implemented via arrays; this way they can be indexed as is usual for arrays in any (other) programming language.
If a is such an array (i.e. one of the above sequence types), then a[0] refers to the content of the first house in the street, a[1] to the second house, etc. Some of the sequences can be modified (here only the lists), therefore they are called mutable. Some of the sequences cannot be modified (strings, bytes, tuples), therefore they are called immutable.
For mutable sequence type objects, the elements can be changed via assignment like lst[0] = 3, the elements of the immutable sequences can only be read and the value used, like print(s[3]).
For lists and tuples the elements are not stored directly inside the array. Only the references to the target objects are stored inside. The target object is accessed indirectly (one hop along the reference). Think in terms that you go to the indexed house, and the person inside tells you where is the real content (in another house, not in this street). In such case, even the element from the (immutable) tuple like t[5]--i.e. the reference--can be used to change the target object content... if the target object is mutable.