## 2.1.5 Sequence Types

There are three sequence types: strings, lists and tuples.

Strings literals are written in single or double quotes: `'xyzzy'`, `"frobozz"`. See Chapter 2 of the Python Reference Manual for more about string literals. Lists are constructed with square brackets, separating items with commas: `[a, b, c]`. Tuples are constructed by the comma operator (not within square brackets), with or without enclosing parentheses, but an empty tuple must have the enclosing parentheses, e.g., `a, b, c` or `()`. A single item tuple must have a trailing comma, e.g., `(d,)`.

Sequence types support the following operations. The ``in`' and ``not in`' operations have the same priorities as the comparison operations. The ``+`' and ``*`' operations have the same priority as the corresponding numeric operations.

This table lists the sequence operations sorted in ascending priority (operations in the same box have the same priority). In the table, s and t are sequences of the same type; n, i and j are integers:

Operation | Result | Notes
--- | --- | ---
`x in s` | `1` if an item of s is equal to x, else `0` |

`x not in s` | `0` if an item of s is equal to x, else `1` |

`s + t` | the concatenation of s and t |

`s * n, n * s` | n copies of s concatenated |
`s[i]` | i'th item of s, origin 0 | (1)

`s[i:j]` | slice of s from i to j | (1), (2)
`len(s)` | length of s |
`min(s)` | smallest item of s |

`max(s)` | largest item of s |

, Notes:

(1)
  If i or j is negative, the index is relative to the end of the string, i.e., `len(s) + i` or `len(s) + j` is substituted. But note that `-0` is still `0`.

(2)
  The slice of s from i to j is defined as the sequence of items with index k such that `i <= k < j`. If i or j is greater than `len(s)`, use `len(s)`. If i is omitted, use `0`. If j is omitted, use `len(s)`. If i is greater than or equal to j, the slice is empty.

- More String Operations
- Mutable Sequence Types