- Tuples are another type of sequence in Python
- they are immutable
- they can be packed
- they can be unpacked to variables
- they can contain mutable objects
- lightweight compared to lists
Demo on how to use tuples
>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>> # Tuples may be nested:
... u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
>>> # Tuples are immutable:
... t[0] = 88888
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> # but they can contain mutable objects:
... v = ([1, 2, 3], [3, 2, 1])
>>> v
([1, 2, 3], [3, 2, 1])
Ways on defining an empty tuple and a tuple with only 1 element
>>> empty = ()
>>> singleton = 'hello', # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)
Packing and unpacking a tuple
>>> t = 23, 'grapes', 'linux' # packing a tuple
>>> t
(23, 'grapes', 'linux')
>>>
>>> number, fruit, os = t # unpacking a tuple
>>> number
23
>>> fruit
'grapes'
>>> os
'linux'
>>>
>>> number, fruit, os, car = t # number of variables on the left side must match
Traceback (most recent call last): # the number of elements on the right tuple
File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 4, got 3)
>>>
Tuples can be converted to list and vice-versa
>>> secret_message = "hello world"
>>> list(secret_message)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> tuple(secret_message)
('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')
>>> list(tuple(list(secret_message)))
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> ''.join(list(tuple(list(secret_message))))
'hello world'
You can also do comparison between tuples
>>> t1
(1, 5, 7.6)
>>> t2
(2, 8, 100)
>>>
>>> t1 < t2
True
>>>
>>> t1 > t2
False
You cannot delete a specific element in a tuple but you can delete all of them at once
>>> num = 600, 1, 5, 45.6
>>> num
(600, 1, 5, 45.6)
>>> del num[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>> del num
>>> num
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'num' is not defined
>>>
Other operations that can be done on tuples
>>> len((1, 2, 3)) # length
3
>>> (1, 2, 3) + (4, 5, 6) # addtion (concatenation)
(1, 2, 3, 4, 5, 6)
>>> ('Hi!',) * 4 # repetition
('Hi!', 'Hi!', 'Hi!', 'Hi!')
>>> 3 in (1, 2, 3) # membership
True
>>> for x in (1,2,3) : print (x, end = ' ') # iteration
...
1 2 3 >>>
>>>
Since tuples are also sequences, you can do slice and index operations against them
>>> T=('C++', 'Java', 'Python')
>>> T[2]
'Python'
>>> T[-2]
'Java'
>>> T[1:]
('Java', 'Python')
>>>
Other tuple functions
cmp(tuple1, tuple2)
len(tuple)
max(tuple)
min(tuple)
tuple(seq)
No comments:
Post a Comment