A subscription selects an item of a sequence (string, tuple or list) or mapping (dictionary) object:
subscription: primary "[" condition "]"
The primary must evaluate to an object of a sequence or mapping type.
If it is a mapping, the condition must evaluate to an object whose value is one of the keys of the mapping, and the subscription selects the value in the mapping that corresponds to that key.
If it is a sequence, the condition must evaluate to a plain integer. If this value is negative, the length of the sequence is added to it (so that, e.g. x[-1] selects the last item of x.) The resulting value must be a nonnegative integer smaller than the number of items in the sequence, and the subscription selects the item whose index is that value (counting from zero).
A string's items are characters. A character is not a separate data type but a string of exactly one character.