Python Sequence and Collections – Operations, Functions, Methods
Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python
This blog is dedicated to a revision of the Python sequence and collections.
In this Python Sequence Tutorial, we will discuss 6 types of Sequence: String, list, tuples, Byte sequences, byte array, and range object.
Moreover, we will discuss Python sequence operations, functions, and methods. At last, we will cover python collection: sets and dictionaries.
So, let’s start Python Sequence and Collections
What is Python Sequence?
So, what is a Python sequence, and how does it differ from a Python collection?
A sequence is a group of items with a deterministic ordering. The order in which we put them in is the order in which we get an item out from them.
Python offers six types of sequences. Let’s discuss them.
1. Python Strings
A string is a group of characters. Since Python has no provision for arrays, we simply use strings. This is how we declare a string:
Python Sequence or Collection
We can use a pair of single or double quotes. And like we’ve always said, Python is dynamically-typed. Every string object is of the type ‘str’.
>>> type(name)
Output
<class ‘str’>
To declare an empty string, we may use the function str():
>>> name=str() >>> name
Output
”
>>> name=str('Ayushi') >>> name
Output
‘Ayushi’
>>> name[3]
Output
‘s’
2. Python Lists
Since Python does not have arrays, it has lists. A list is an ordered group of items. To declare it, we use square brackets.
>>> groceries=['milk','bread','eggs'] >>> groceries[1]
Output
‘bread’
>>> groceries[:2]
Output
[‘milk’, ‘bread’]
A Python list can hold all kinds of items; this is what makes it heterogenous.
>>> mylist=[1,'2',3.0,False]
Also, a list is mutable. This means we can change a value.
>>> groceries[0]='cheese' >>> groceries
Output
[‘cheese’, ‘bread’, ‘eggs’]
A list may also contain functions.
>>> groceries[0]='cheese' >>> groceries
Output
print(“Hi”)
>>>Â newlist=[sayhi,sayhi] >>>Â newlist[0]
Output
<function sayhi at 0x05907300>
>>> newlist[0]()
Output
Hi
3. Python Tuples
A tuple, in effect, is an immutable group of items. When we say immutable, we mean we cannot change a single value once we declare it.
>>> name=('Ayushi','Sharma') >>> type(name)
Output
<class ‘tuple’>
We can also use the function tuple().
>>> name=tuple(['Ayushi','Sharma']) >>> name
Output
(‘Ayushi’, ‘Sharma’)
Like we said, a tuple is immutable. Let’s try changing a value.
>>> name[0]='Avery'
Output
Traceback (most recent call last):File “<pyshell#594>”, line 1, in <module>
name[0]=’Avery’
TypeError: ‘tuple’ object does not support item assignment
4. Bytes Sequences
The function bytes() returns an immutable bytes object. We dealt with this when we talked Built-in Functions in Python.
Let’s take a few examples.
>>> bytes(5)
Output
b’\x00\x00\x00\x00\x00′
>>> bytes([1,2,3,4,5])
Output
b’\x01\x02\x03\x04\x05′
>>> bytes('hello','utf-8')
Output
b ‘hello’
Here, utf-8 is the encoding we used.
Since it is immutable, if we try to change an item, it will raise a TypeError.
>>> a=bytes([1,2,3,4,5]) >>> a
Output
b’\x01\x02\x03\x04\x05′
>>> a[4]=3
Output
Traceback (most recent call last):File “<pyshell#46>”, line 1, in <module>
a[4]=3
TypeError: ‘bytes’ object does not support item assignment
5. Bytes Arrays
In that article, we discussed this one too. A bytesarray object is like a bytes object, but it is mutable.
It returns an array of the given byte size.
>>> a=bytearray(4) >>> a
Output
bytearray(b’\x00\x00\x00\x00′)
>>> a=bytearray(4) >>> a
Output
bytearray(b’\x00\x00\x00\x00\x01′)
>>> a[0]=1 >>> a
Output
bytearray(b’\x01\x00\x00\x00\x01′)
>>> a[0]
Output
1
Let’s try doing this on a list.
>>> bytearray([1,2,3,4])
Output
bytearray(b’\x01\x02\x03\x04′)
Finally, let’s try changing a value.
>>> a=bytearray([1,2,3,4,5]) >>> a
Output
bytearray(b’\x01\x02\x03\x04\x05′)
>>> a[4]=3 >>> a
Output
bytearray(b’\x01\x02\x03\x04\x03′)
See? It is mutable.
6. range() objects
A range() object lends us a range to iterate on; it gives us a list of numbers.
>>> a=range(4) >>> type(a)
Output
>>> for i in range(7,0,-1): print(i)
Output
6
5
4
3
2
1
We took an entire post on Range in Python.
Python Sequence Operations
Since we classify into sequences and collections, we might as well discuss the operations we can perform on them. For simplicity, we will demonstrate these on strings.
- Concatenation
Concatenation adds the second operand after the first one.
>>> 'Ayu'+'shi'
Output
- Integer Multiplication
We can make a string print twice by multiplying it by 2.
>>> 'ba'+'na'*2
Output
- Membership
To check if a value is a member of a sequence, we use the ‘in’ operator.
>>> 'men' in 'Disappointment'
Output
- Python Slice
Sometimes, we only want a part of a sequence, and not all of it. We do it with the slicing operator.
>>> 'Ayushi'[1:4]
Output
Python Sequence Functions
- len()
A very common and useful function to pass a sequence to is len(). It returns the length of the Python sequence.
>>> len('Ayushi')
Output
- min() and max()
min() and max() return the lowest and highest values, respectively, in a Python sequence.
>>> min('cat')
Output
>>> max('cat')
Output
This comparison is based on ASCII values.
Python Sequence Methods
There are some methods that we can call on a Python sequence:
- Python index()
This method returns the index of the first occurrence of a value.
>>> 'banana'.index('n')
Output
- Python count()
count() returns the number of occurrences of a value in a Python sequence.
>>> 'banana'.count('na')
Output
>>> 'banana'.count('a')
Output
Python Collections
Python collection, unlike a sequence, does not have a deterministic ordering. Examples include sets and dictionaries.
In a collection, while ordering is arbitrary, physically, they do have an order.
Every time we visit a set, we get its items in the same order. However, if we add or remove an item, it may affect the order.
1. Python Set
A set, in Python, is like a mathematical set in Python. It does not hold duplicates. We can declare a set in two ways:
>>> nums={2,1,3,2} >>> nums
Output
>>> nums=set([1,3,2]) >>> nums
Output
A set is mutable.
>>> nums.discard(2) >>> nums
Output
But it may not contain mutable items like lists, dictionaries, or other sets.
2. Python Dictionaries
Think of a dictionary as a real-life dictionary. It holds key-value pairs, and this is how we declare it:
>>> a={'name':1,'dob':2}
Or, you could do:
>>> a=dict() >>> a['name']=1 >>> a['dob']=2 >>> a
Output
We have yet another way to create a dictionary- a dictionary comprehension.
>>> a={i:2**i for i in range(4)} >>> a
Output
However, a key cannot be of an unhashable type.
>>> a={[1,2,3]:1,1:[1,2,3]}
Output
Traceback (most recent call last):File “<pyshell#629>”, line 1, in <module>
a={[1,2,3]:1,1:[1,2,3]}
TypeError: unhashable type: ‘list’
So, this was all about the Python sequence and collections tutorial. Hope you like our explanation.
Python Interview Questions on Sequences and Collections
- What are Python Collections and Sequences?
- What are the different types of Sequences in Python?
- Is string, a collection in Python?
- What are collection data types in Python?
- Is set, a sequence in Python?
Conclusion
To conclude this Python Sequence and collection tutorial, we will say that a sequence has a deterministic ordering, but a collection does not.
Examples of sequences include strings, lists, tuples, bytes sequences, bytes arrays, and range objects. Those of collections include sets and dictionaries.
Your opinion matters
Please write your valuable feedback about DataFlair on Google
Hi ,
please check this line {0: 1, 1: 2, 2: 4, 3: 8} in dictionary topic.
it should be {0: 1, 1: 2, 2: 4, 3: 8}
Hi Anumula
Thanks for reading the Python Sequence tutorial. We didn’t get your point. You have written the same thing which you mention as an error.
Still, we have checked this there is no need to do changes.
We request you to check again and tell us your query.
DataFlair Team.
What is unhashable?
Do all mutable values are unhashable type?
You can think of a hash as a unique value for each input. All the mutable objects are unhashable, Example of mutable/unhashable are list, sets, and dictionary. Since mutable objects can change their value therefore they cannot be hashed. So yes, all mutable values are unhashable.
Men in disappointment TRUE!
Would you dare have a similar example about women?
A sequence in Python is an ordered collection. A sequence is also a collection but ordered. A Collection is a container data type which means a collection of multiple objects. If a collection is ordered then it is referred as a sequence. If a collection is in key-value pair then it is mapped and called as dictionary. Set is an another type of collection.