DEV Community

SK RAJIBUL
SK RAJIBUL

Posted on

1

Python's MAP/FILTER/REDUCE: Streamlining Data Manipulation in Seconds

Introduction:
Python offers powerful built-in functions for working with collections of data: MAP, FILTER, and REDUCE. In just 30 seconds, let's dive into what these functions do and how they can simplify your code.

MAP:

The map function takes in 1) a function and 2) an iterable. The purpose of the function is to apply some sort of transformation to each element inside our iterable (think list). It then applies the function to every element in the iterable, and returns a new iterable.

# Double each number in a list
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # Output: [2, 4, 6, 8, 10]
Enter fullscreen mode Exit fullscreen mode

FILTER:

The filter function takes in 1) a function and 2) an iterable. The purpose of the function is to decide which iterables to keep or to discard in the new iterable. It does not apply any transformation on the elements.

mylist = [1, 2, 3, 4, 5, 6, 7, 8]

def larger5(n):
  return n > 5

newlist = list(filter(larger5, mylist))
print(newlist)

# [6, 7, 8]
Enter fullscreen mode Exit fullscreen mode
  • each function call returns either True or False
  • if True is returned, the original element is kept
  • if False is returned, the original element is discarded

REDUCE:

REDUCE applies a rolling computation to pairs of items in an iterable and returns a single result. It's like gradually combining items together until you get a final result. For example:

fruits = ['apple', 'orange', 'pear', 'pineapple']

def add(a, b):
  return a + '-' + b

from functools import reduce

result = reduce(add, fruits)
print(result)

# apple-orange-pear-pineapple
Enter fullscreen mode Exit fullscreen mode
  • add('apple', 'orange') returns 'apple-orange'
  • add('apple-orange', 'pear') returns 'apple-orange-pear'
  • add('apple-orange-pear', 'pineapple') returns 'apple-orange-pear-pineapple'
  • And this is why we get 'apple-orange-pear-pineapple' in the end

Conclusion:
In just 100 seconds, you've learned about Python's MAP, FILTER, and REDUCE functions. These powerful tools can help you manipulate data in a concise and expressive way, making your code more readable and efficient. Happy coding!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more