Data Structures in Python – Complete Guide
By Rohan Vats
Updated on Nov 30, 2022 | 14 min read | 6.0k views
Share:
For working professionals
For fresh graduates
More
By Rohan Vats
Updated on Nov 30, 2022 | 14 min read | 6.0k views
Share:
Table of Contents
Data structure refers to the computational storage of data for efficient use. It stores the data in a way that can be easily modified and accessed. It collectively refers to the data values, relation between them, and the operations that can be carried on the data. The importance of data structure lies in its application for developing computer programs. As computer programs rely heavily on data, proper arrangement of the data for easy access is of foremost importance towards any program or software.
The four main functions of a data structure are
Several data structures are supported by Python for easy access and storage of data. Python data structures types can be classified as primitive and non-primitive data types. The former data types include Integers, Float, Strings, and Boolean, while the latter one is the array, list, tuples, dictionaries, sets, and Files. Therefore, data structures in python are both built-in data structures and user-defined data structures. The built-in data structure is referred to as the non-primitive data structure.
Get data science certification from the World’s top Universities. Learn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career.
Python has several structures of data that act as containers for the storage of other data. These python data structures are List, Dictionaries, Tuple, and Sets.
These data structures can be programmed as the same function as that of the built-in data structures in python. The user defined data structures are;Linked List, Stack, Queue, Tree, Graph, and Hashmap.
The data stored in a list are sequentially arranged and of different data types. For every data, an address is assigned and it is known as the index. Index value starts with a 0 and goes on till the last element. This is called a positive index. A negative index also exists if the elements are accessed reversely. This is called negative indexing.
List creation
The list is created as square brackets. Elements can then be added accordingly. It can be added within the square brackets to create a list. If no elements are added, an empty list will be created. Else the elements within the list will be created.
my_list = [] #create empty list print(my_list) my_list = [1, 2, 3, ‘example’, 3.132] #creating list with data print(my_list) |
Output []
|
Adding elements within a list
Three functions are used for the addition of elements within a list. These functions are append(), extend(), and insert().
Input
|
Output:
|
Deletion of elements within a list
A built-in keyword “del” in python is used to delete an element from the list. However, this function doesn’t return the deleted element.
Output:
[1, 2, 3, ‘example’, 3.132, 30]
[1, 2, 3, 3.132, 30]
Popped Element: 2 List remaining: [1, 3, 3.132, 30]
[]
Assessing of elements in a list
Output:
1
2
3
example
3.132
10
30
[1, 2, 3, ‘example’, 3.132, 10, 30]
Example
[1, 2]
[30, 10, 3.132, ‘example’, 3, 2, 1]
In addition to the above-mentioned operations, several other in-built functions are available in python for working with lists.
Output
6
3
2
[1, 2, 3, 10, 10, 30]
[30, 10, 10, 3, 2, 1]
upGrad’s Exclusive Data Science Webinar for you –
Transformation & Opportunities in Analytics & Insights
Dictionary is a type of data structure where key-value pairs are stored rather than single elements. It can be explained with the example of a phone directory which has all the numbers of individuals along with their Phone numbers. The name and phone number here defines the constant values that are the “key” and the numbers and names of all the individuals as the values to that key. Assessing a key will give access to all the values stored within that key. This defined key-value structure on Python is known as a dictionary.
Creation of a dictionary
Modification in key-value pairs
Any modifications in the dictionary can be done only through the key. Therefore, the keys should be accessed first and then the modifications are to be carried out.
Input
|
|
Deletion of a dictionary
A clear () function is used to delete the whole dictionary. The dictionary can be assessed through the keys using the get() function or passing the key values.
Input dict = {‘Month’: ‘January’, ‘Season’: ‘winter’} print(dict[‘First’])
|
Output January
|
Other functions associated with a dictionary are keys(), values(), and items().
Similar to the list, Tuples are data storage lists, but the only difference is that the data stored in a tuple cannot be modified. If the data within a tuple is mutable, only then it’s possible to change the data.
Input
new_tuple = (10, 20, 30, 40)
print(new_tuple)
Output
(10, 20, 30, 40)
Input
new_tuple2 = (10, 20, 30, ‘age’)
for x in new_tuple2:
print(x)
print(new_tuple2)
print(new_tuple2[0])
Output
10
20
30
Age
(10, 20, 30, ‘age’)
10
Input
tuple = (1, 2, 3)
tuple = tuple + (4, 5, 6
print(tuple)
Output
(1, 2, 3, 4, 5, 6)
4. Set
The set data structure is similar to the arithmetic sets. It is basically the collection of unique elements. If the data keeps on repeating, then sets consider adding that element only once.
Input
set = {10, 20, 30, 40, 40, 40}
print(set)
Output
{10, 20, 30, 40}
A stack is a linear structure that is either a Last in First out (LIFO) or a First in Last Out (FIFO) structure. Two main operations exist in the stack i.e. push and pop. Push means the appending of an element in the top of the list whereas pop means removing an element from the bottom of the stack. The process is well described in Figure 1.
Usefulness of stack
Output
[‘first’, ‘second’, ‘third’]
[‘first’, ‘second’, ‘third’, ‘fourth’, ‘fifth’]
fifth
[‘first’, ‘second’, ‘third’, ‘fourth’]
Similar to the stacks, a queue is a linear structure that allows the insertion of an element at one end and deletion from the other end. The two operations are known as enqueue and dequeue. The recently added element is removed first like the stacks. A graphical representation of the queue is shown in Figure 2. One of the main uses of a queue is for the processing of things as soon as they enter.
Output
[‘first’, ‘second’, ‘third’]
[‘first’, ‘second’, ‘third’, ‘fourth’, ‘fifth’]
first
fifth
[‘second’, ‘third’, ‘fourth’, ‘fifth’]
Trees are non-linear and hierarchical data structures consisting of nodes linked through edges. The python tree data structure has a root node, parent node, and child node. The root is the topmost element of a data structure. A binary tree is a structure in which elements have no more than two child nodes.
The usefulness of a tree
Figure 3: Graphical representation of a tree
Example:
Output
First
Second
Third
Our learners also read: Top Python Courses for Free
4. Graph
Another non-linear data structure in python is the graph that consists of nodes and edges. Graphically it displays a set of objects, with some objects connected through links. The vertices are interconnected objects while the links are termed as edges. Representation of a graph can be done through the dictionary data structure of python, where the key represents the vertices and the values represent the edges.
Basic operations that can be performed on graphs
The usefulness of a Graph
Figure 4: Graphical representation of a graph
Example
g = graph(4)
g.edge(0, 2)
g.edge(1, 3)
g.edge(3, 2)
g.edge(0, 3)
g.__repr__()
Output
Adjacency list of vertex 0
head -> 3 -> 2
Adjacency list of vertex 1
head -> 3
Adjacency list of vertex 2
head -> 3 -> 0
Adjacency list of vertex 3
head -> 0 -> 2 -> 1
Hashmaps are indexed python data structures useful for the storage of key-value pairs. Data stored in hashmaps are retrieved through the keys which are computed through the help of a hash function. These types of data structures are useful for the storage of student data, customer details, etc. Dictionaries in python are an example of hashmaps.
Example
Output
0 -> first
1 -> second
2 -> third
0 -> first
1 -> second
2 -> third
3 -> fourth
0 -> first
1 -> second
2 -> third
Usefulness
It is a type of linear data structure. Basically, it is a series of data elements joined together through links in python. Elements in a linked list are connected through pointers. The first node of this data structure is referred to as the header and the last node is referred to as the tail. Therefore, a linked list consists of nodes having values, and each node consists of a pointer linked to another node.
The usefulness of linked lists
Figure 6: Graphical representation of a Linked List
Example
Output:
[‘first’, ‘second’, ‘third’]
[‘first’, ‘second’, ‘third’, ‘sixth’, ‘fourth’, ‘fifth’]
[‘first’, ‘third’, ‘sixth’, ‘fourth’, ‘fifth’]
The various types of data structures in python have been explored. Whether a novice or an expert the data structures and the algorithms can’t be ignored. While performing any form of operations on the data, the concepts of data structures play a vital role. The data structures help in storing the information in an organized manner, whereas the algorithms help in guiding throughout the data analysis. Therefore, both the python data structures and algorithms assist the computer scientist or any users to process their data.
If you are curious to learn about data structures, check out IIIT-B & upGrad’s Executive PG Program in Data Science which is created for working professionals and offers 10+ case studies & projects, practical hands-on workshops, mentorship with industry experts, 1-on-1 with industry mentors, 400+ hours of learning and job assistance with top firms.
Get Free Consultation
By submitting, I accept the T&C and
Privacy Policy
Start Your Career in Data Science Today
Top Resources