How to Do Comprehension in Python ? : Must Read for Data Scientist

As you already know Python is the best programming language for the data science. Python packages like Pandas,Numpy scikit-learn and others are popular Python modules for data science. We use it in while writing code for the machine learning or deep learning. But one thing we have realized that while writing we have to deal with most of the tasks on the lists or dictionaries. And Iterating these lists are not efficient as compared to Python Comprehension.Thus in the entire intuition of “ How to “ you will learn how to do comprehension in python.

How to do a list comprehension in python?

For better understanding let’s take a basic example. Suppose I want to square the numbers from a given list. I can use the map function and lambda function. Like this

numbers = [1,2,3,4,5,6,7]
square_of_numbers = list(map(lambda n: n**2,numbers))

square of number

But I can use the list comprehension to increase efficiency and readable. Like this

numbers = [1,2,3,4,5,6,7]
square_of_numbers = [n**2 for n in numbers if n >3]

The square bracket represents that list comprehension. and all the logics are inside the [ ]. It will finally generate the list of the square of the numbers for all the numbers that are greater than 3.


square of number greater than three

How can you use it in Data Science?

You can use it in Data Science like to change the categorical variable to a numerical variable. Suppose I have a Gender column in the data frame and I want to change into numerical form that is Male to 1 and Female to 0. Use the following code.

gender = ["Male","Female","Male","Female","Male","Female","Male","Male","Female","Female","Male","Female","Male","Female","Male","Male"]
df = pd.DataFrame(gender,columns=["gender"])
gender_numeric = [1 if g =="Male" else 0 for g in df["gender"] ]

categorical value to numeric value using list comphrenshion

How to do list comprehension in python for the dictionary?

You can also use comprehension to build a dictionary. For example, let’s say I have a list of numbers and I am assigning true to all the numbers that are greater than 5.

numbers = [1,2,3,4,5,6,7]
test = {n : True if n > 5 else False for n in numbers}

dictionary comprehension

Another example I can take is that let’s say I have two dictionaries that have names and their corresponding age. And I want to merge them then I will use the following code for that. Use the Following Code.

dict1 = {"Abhishek":26,"Monae":20,"John":30}
dict2 ={"Rohan":21,"Maya":36}
merged_dict = {i:j for name in (dict1,dict2) for i,j in name.items()}


merge two dictionary using comprehension


Join our list

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for signup. A Confirmation Email has been sent to your Email Address.

Something went wrong.

Meet Sukesh ( Chief Editor ), a passionate and skilled Python programmer with a deep fascination for data science, NumPy, and Pandas. His journey in the world of coding began as a curious explorer and has evolved into a seasoned data enthusiast.
Thank you For sharing.We appreciate your support. Don't Forget to LIKE and FOLLOW our SITE to keep UPDATED with Data Science Learner