03. Sequences

Sequences are an ordered collection that may contain duplicate elements. This is quite the opposite from Python sets, which is an unordered collection that does not contain duplicate elements.

Six sequence types

There are six sequence types - str, bytes, bytearray, range, tuple and list. We have already seen the str primitive data type earlier. All sequences are immutable except for bytearray and lists.

Referencing by indices - Splicing

Since sequences are ordered, you may reference them by indices. Recall splicing, which we used for strings. Suppose we have a sequence s. We may pull a subsequence with the following notations.

s[i:j]
From i to but not including j.
s[i:]
From i to end of sequence.
s[:j]
From beginning up to but not including j.
s[:-1]
Up to but not including last element.
s[:]
All elements.
s[i:j:k]
Every kth element starting from i up to but not including j.

Bytes and Bytearray

Bytes and bytearrays are used to store raw data storing bytes (numbers 0 to 255). Bytearrays are mutable, but bytes are not.

To construct a bytes sequences, use either the bytes() command. The b followed by a string converts each character to its ASCII equivalent.

>>> testBytes = bytes(b'hello')
>>> testBytes[1]
101
>>> testBytes[1:4]
b'ell'
>>> testBytes[1:]
Traceback (most recent call last):
  File "<stdin>", line 1, in <modul>e
TypeError: 'bytes' object does not support item assignment

Note that for the first call, we have 101, which is the ASCII equivalent of the letter 'e', which is what we have here. For the second example, we call a spliced region and get back a bytes sequence. The last example shows the immutable nature of bytes.

>>> testBytearray = bytearray(b'hello')
>>> testBytearray[1:] = b'i'
>>> testBytearray
bytearray(b('hi'))

In this example, we can see that our bytearray is mutable.

Sequence operations

There are a set of sequence operations that can be used across all the types of sequences. For an element x in sequence s and t:

x in s
Check if x exists in the sequence.
x not in s
Check if x does not exist in the sequence.
s + t
Concatenate two or more sequences together.
2 * s
Join two sequences together.
len(s)
Length of sequence.
min(s)
Return smallest item.
max(s)
Return largest item.
s.index(i)
Return first occurrence of i.
s.count(i)
Return total occurrences of i.

Let's now move onto the more interesting sequences - Ranges, Tuples and Lists.

Aching back from coding all day?

Self-Massage Tool

Aching back from coding all day? Try Back Problems

Relieve spasms, tight muscles, trigger points and pressure points with the Body Back Buddy! This trigger point massage is designed to help you self-message any area of your body - especially those that are hard to reach. Keeping your muscles relaxes and out of contraction is importan in helping to reduce pain and prevent muscle injury.

$ Check price
29.9529.95Amazon 4.5 logo(3,443+ reviews)

More Back Problems resources

Learn to be a Pythonista!

Introducing Python

Learn to be a Pythonista! Try Python

Easy to understand and fun to read, Introducing Python is ideal for beginning programmers as well as those new to the language. Author Bill Lubanovic takes you from the basics to more involved and varied topics, mixing tutorials with cookbook-style code recipes to explain concepts in Python 3. End-of-chapter exercises help you practice what you learned.

$ Check price
39.9939.99Amazon 4.5 logo(37+ reviews)

More Python resources

Ad