The sequences can be constructed in a concise or a short way from already defined sequences through the use of comprehensions in python. The sequences include data structures such as list, dictionary, set, etc. The following comprehensions are supported in python:
- List Comprehensions
- Dictionary Comprehensions
- Set Comprehensions
- Generator Comprehensions
This article will focus on the list comprehensions in python and its uses. Like the list comprehension set and dictionary comprehensions in python can also be created.
Table of Contents
What is List Comprehension?
Python is a widely accepted programming language that provides the user with the ability to write easy and elegant code. List comprehension is one such distinctive feature of python which is used for creating new lists. Through the use of a single line of code, the functionality can be created.
It is not necessary that an if condition should be contained in a list comprehension, however multiple forms can be contained in the list comprehension.
Therefore, list comprehensions
- Is an elegant way for defining and the creation of a list based on lists that are existing.
- Compared to the normal functions for creating lists and the loops, the list comprehensions are much more compact and faster.
- For the code to be more user-friendly, writing of long list comprehensions should be avoided.
- While using a for loop, list comprehensions can be re-written.
How to create list?
Several ways exist for creating lists in the programming language python.
1. for loops
For loop can be used for creating a list. Three steps are to be followed for creating the element list.
- An empty list is to be instantiated.
- Looping is used over elements that can be iterated.
- Each element is appended to the list end.
2. map() Objects
An alternative approach i.e. map() is based on functional programming. An object is created when a function and element that is iterable is passed on to map(). The output that would be generated from the execution of the iterable element through the supplied function will be contained in the object.
3. List comprehensions
Another way of making a list is through the use of list comprehension. The for loop can be re-written in a code consisting of just a single line.
Compared to the earlier methods where an empty list is created first and then the addition of the elements at the end, in this case, it simply happens in just a single line. The list and the contents are simply defined at the same time. The code used is.
There are three elements in every python list comprehensions.
- Expression: It being a member, expression is a method call or any expressions where a value is returned.
- Member: It is a value or an object in the iterable list. The value of a member is 1 in the above example.
- Iterable: it is a list, sequence, set, or other objects whose elements can be returned one at a time. Iterable is range(10) in the above example.
Python list comprehension can work well even in places that use map(). The above example can be re-written as.
The difference in using a map() and list comprehension is that a list is returned in case of list comprehension while a map object is returned in case of map().
The existing lists can be modified through the use of conditional statements in the list comprehensions. Either list or tuples, both can be modified through python list comprehensions.
1. Using the condition of if
Condition of ‘if’ can be used in list comprehension through the following code.
Running the above program generates the output: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
2. Using the condition of Nested IF
The list comprehension does the following checks:
- Is the element y divisible by 2 or 5?
- If both the conditions are satisfied by y then it is appended to num_list.
3. Using if-else
In the example shown above, the ten numbers, i.e. from 0 to 10 are checked by list comprehensions.
4. Using of nested loops
Output generated: [[1, 4], [2, 5], [3, 6], [4, 8]]
The transpose of the matrix is computed through the use of two loops.
- Compared to the normal nested loops, the nested loops contained in list comprehensions work differently from the other nested loops.
The basic syntax for python list comprehension is
[expression for item in list]
Suppose we have a string and we want to iterate it through the use of list comprehension.
In the above example, it can be noticed that the ‘human’ is used as a string neither a list. Here lies the power of the python list comprehensions. Whether a string or be it a tuple, the list comprehension can identify it and work upon it like a list.
The same thing can be carried out by using the loops. But, the syntax of list comprehension cannot be followed by the loops.
In this article, you learned briefly about the list comprehensions in python and its creation in various ways. With the knowledge of this comprehension, other codes may be tried upon for your tasks. The concept of python is getting a lot of attention, but it will be more valuable if you are able to use your data effectively. This can be carried out by writing clear and concise codes.
Therefore if you are willing to learn about python and its implementation in data mining, you can check the course of Executive PG Programme in Data Science offered by upGrad. The 12 months course is designed for entry-level professionals (both male and female) within 21 to 45 years of age and is India’s first NASSCOM certified PGP. With over 400+ hours of learning and hands-on experience of 14+ tools and languages, the course is designed specially to meet your dreams. Queries related to the course are most welcomed.
Python list is considered to be the best data structure to store the data in the following scenarios: List comprehension provides several significant advantages over the loop. Below are some of the pros of list comprehensions: A Python list can be created in multiple ways that are mentioned below:
When is a Python list preferred for storing data?
1. A list can be used to store various values with different data types and can be accessed just by their respective indices.
2. When you need to perform mathematical operations over the elements, a list can be used since it allows you to mathematically operate the elements directly.
3. Since a list can be resized, it can be used to store the data when you are not certain about the number of elements to be stored.
4. The list elements are easily mutable and it can also store duplicate elements, unlike set and dictionary.
What are the advantages of list comprehension over loop?
1. List comprehension is much faster and compact than the loop since it collects all the elements first and inserts them all together at once.
2. The same thing that a loop does in a block can be done in a single line using a list comprehension, making the code cleaner and more user-friendly.
3. Resolving a matrix into a vector and list filtration are some of the best examples where the list comprehensions can be seen outperforming a loop.
State the different ways of creating a list?
1. Using for loops: A for loop is the most elemental way of creating a list. A list can be created using a for loop in three simple ways:
a. Create an empty list.
b. Iterate over all the elements that are to be inserted.
c. Append each element in the list using the append() function.
2. Using map(): The map() function in Python can be used alternatively to create a list. This function accepts two parameters:
a. Function: The function to which the map passes each iterable.
b. Iterable: The element or the iterable to be mapped.
3. Using List comprehensions: This method is the most optimized of all three methods. While in the above methods an empty list has to be created first, list comprehensions allow you to insert all the elements in a list using a single line.
Python list is considered to be the best data structure to store the data in the following scenarios:
List comprehension provides several significant advantages over the loop. Below are some of the pros of list comprehensions:
A Python list can be created in multiple ways that are mentioned below: