Tuple
Tuples are an ordered collection of values that cannot be modified at runtime. This module shows how tuples are created, iterated, accessed and combined.
def main():
# This is a tuple of integers
immutable = (1, 2, 3, 4)
# It can be indexed like a list
assert immutable[0] == 1
assert immutable[-1] == 4
# It can be sliced like a list
assert immutable[1:3] == (2, 3)
assert immutable[3:4] == (4,)
assert immutable[1::2] == (2, 4)
assert immutable[::-1] == (4, 3, 2, 1)
# It can be iterated over like a list
for ix, number in enumerate(immutable):
assert immutable[ix] == number
# But its contents cannot be changed. As an alternative, we can
# create new tuples from existing tuples
bigger_immutable = immutable + (5, 6)
assert bigger_immutable == (1, 2, 3, 4, 5, 6)
smaller_immutable = immutable[0:2]
assert smaller_immutable == (1, 2)
# We use tuples when the number of items is consistent. An example
# where this can help is a 2D game with X and Y coordinates. Using a
# tuple with two numbers can ensure that the number of coordinates
# doesn't change to one, three, four, etc.
moved_count = 0
pos_x, pos_y = (0, 0)
for i in range(1, 5, 2):
moved_count += 1
pos_x, pos_y = (pos_x + 10 * i, pos_y + 15 * i)
assert moved_count == 2
assert pos_x == 40 and pos_y == 60
if __name__ == "__main__":
main()