Skip to main content

Higher Order Functions in Python

 Map Function

Map takes a function and a collection of items. 

It makes a new, empty collection, runs the function on each item in the original collection and inserts each return value into the new collection. It returns the new collection.

This is a simple map that takes a list of names and returns a list of the lengths of those names:

name_lengths = map(len, ["Mary", "Isla", "Sam"])

print(name_lengths) =>[4, 4, 3]


Syntax:
map(fun, iter)

fun : It is a function to which map passes each element of given iterable.
iter : It is a iterable which is to be mapped.

def addition(n):
    return n + n
  
# We double all numbers using map()
numbers = (1, 2, 3, 4)
result = map(addition, numbers)
print(list(result))


>>[2, 4, 6, 8]


Reduce Function

Reduce takes a function and a collection of items. It returns a value that is created by combining the items.

This is a simple reduce. It returns the sum of all the items in the collection.

total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])

print(total) =>10


Syntax:

filter(functioniterable)

function: A Function to be run for each item in the iterable

iterable: The iterable to be filtered


Example:

def my_func3(x,y):

  return x+y

from functools import reduce

reduce(my_func3,[1,2,3,4,5])

>>15

Filter Function

Filter takes a function and a collection. It returns a collection of every item for which the function returned True.

arr=[1,2,3,4,5,6]

[i for i in filter(lambda x:x>4,arr)] 

# outputs[5,6]


Syntax:

 reduce(functioniterable)

function: A Function to be run for each item in the iterable

iterable: The iterable to be reduced


Example:

ages = [51217182432]

def myFunc(x):
  if x < 18:
    return False
  else:
    return True

adults filter(myFunc, ages)

for x in adults:
  print(x)

>> 18

    24
    32

Comments