Tuple
A tuple is a comma-separated collection of objects and by conversion delimited by open and closed brackets - parentheses, ()
. A tuple is just like a list
but a tuple is immutable - we can not alter the content of a tuple after creation, unlike a list.
Structure of a Tuple
sample_tuple = 1, 2, 3 # a tuple with brackets tuple_with_bracket = (1, 2, 3) # thus an empty tuple empty_tuple = () # an empty list, [] # empty tuple object tup_object = tuple() # to verify this try type(sample_tuple) and # type(tuple_with_bracket) # we should see some with tuple
Note
A single element tuple, a unit tuple, can be created by simply ending the statement with a comma.
# this is also a tuple single_element_tuple = 1, # or single_element_tuple = (1,) print(type(single_element_tuple)) # but this is not a tuple not_single_element_tuple = 1 # nor is this not_single_element_tuple = (1) print(type(not_single_element_tuple))
Pros and Cons of a Tuple
Most of the things (functionalities) we wish to do to a list, we may do to a tuple but know that we can not mutate a tuple. The workaround for this is to cast the tuple to a list, mutate it and cast it to a list afterwards. We should stick to using a list. We could also assign the said tuple to a new tuple.
my_tuple = (1, 2, 3) # indexing first_element = my_tuple[0] # reassigning not allowed # TypeError: 'tuple' object does not support item assignment my_tuple[0] = 4 # len, max, min tuple_size = len(my_tuple) # sequence unpacking # this is another way to unpack the tuple # this is also feasible for a list first_el, second_el, third_el = my_tuple # this is just like a multiple assignment first_el, second_el, third_el = 1, 2, 3 # nested tuple nest_tuple = ( my_tuple, ('john', 'mic', 'Dorris'), 'New zealand') # can not append nor extend # AttributeError sample_tup = 1, sample_tup.append(2) sample_tup.extend((2, 3)) # but we can contatenate with += sample_tup += 2, 3 print(sample_tup) # (1, 2, 3) # What happened was that we concatenated 1, and 2, 3 and # assigned it to sample_tup, we created a new tuple
Casting
we may cast - convert any iterable - a sequential object such as a list
and string
to a tuple but not a number. This is because we can not loop over a number. We could if we cast the number to a string. This can be done using tuple(sequence)
.
# casting a list to a tuple my_list = [1, 2, 3] my_tuple = tuple(my_list) my_str = 'Hello world' tuple_str = tuple(my_str) print(tuple_str) # output-> # ('H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')
Practicals
Given the line 2x - 3y + 5 = 0
, print out a list of points from x and y
in range of 0 to 100
such the points lie on the line
and also the value for either x or y
is a multiple of 3 or 5
.
Summary
- A
tuple
is an immutable list, delimited by parentheses - Sample tuple,
my_tuple = (1, 2, 3)
-
tuple
does not have theappend
andextend
method - Make a sequence a
tuple
by casting it.tuple('I am a string')
Top comments (0)