Functional Programming in Python 🐍

πŸ“… July 3, 2019 β€’ πŸ•£ 1 min read

Features like lambda, map, filter, reduce are generally used to perform functional programming related tasks in Python. Let’s take a quick look on them.

Lambdas

  • Anonymous functions
  • No function name,
  • They can be passed as function arguments/objects.
  • No return statment, evaluated exrpession is returned automatically.
  • Single line function.

Example :

double = lambda x: x*x
print(double(34))

elementList = [34, 56, 78, 90, 0, 12]
doubleList = lambda elementList: [e*e for e in elementList]
print(doubleList(elementList))

Map

  • applies a function to all the items in an input list.
  • map(function_to_apply, list_of_inputs).

Example :

myList = ["bhupesh", "varshney", "is", "a", "developer"]

capitalize = list(map(lambda x: x.upper(), myList))
print(capitalize)

Filter

  • creates a list of elements for which a function returns True.

Example :

mylist = [23, 45, 6, 8, 10, 16]
evenList = list(filter(lambda x: x%2 == 0, mylist))
print(evenList)

Reduce

  • accepts a function and a sequence(list/set etc) and returns a single value calculated.
  • Initially, the function is called with the first two items from the sequence and the result is returned.
  • The function is then called again with the result obtained in step 1 and the next value in the sequence. This process keeps repeating until there are items in the sequence.

Example :

from functools import reduce

li = [5, 8, 10, 20, 50, 100]

sum = reduce((lambda x, y: x + y), li) 
print(sum)