Given a 2-D matrix, we need to find sum of all elements present in matrix ? Examples:
Input : arr = [[1, 2, 3], [4, 5, 6], [2, 1, 2]] Output : Sum = 26
This problem can be solved easily using two for loops by iterating whole matrix but we can solve this problem quickly in python using map() function.
Python3
# Function to calculate sum of all elements in matrix # sum(arr) is a python inbuilt function which calculates # sum of each element in a iterable ( array, list etc ). # map(sum,arr) applies a given function to each item of # an iterable and returns a list of the results. def findSum(arr):
# inner map function applies inbuilt function
# sum on each row of matrix arr and returns
# list of sum of elements of each row
return sum ( map ( sum ,arr))
# Driver function if __name__ = = "__main__" :
arr = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 2 , 1 , 2 ]]
print ( "Sum = " ,findSum(arr))
|
Output
Sum = 26
What does map() do?
The map() function applies a given function to each item of an iterable(list, tuple etc.) and returns a list of the results. For example see given below example :
Python3
# Python code to demonstrate working of map() # Function to calculate square of any number def calculateSquare(n):
return n * n
# numbers is a list of elements numbers = [ 1 , 2 , 3 , 4 ]
# Here map function is mapping calculateSquare # function to each element of numbers list. # It is similar to pass each element of numbers # list one by one into calculateSquare function # and store result in another list result = map (calculateSquare, numbers)
# resultant output will be [1,4,9,16] print (result)
set_result = list (result)
print (set_result)
|
Output
<map object at 0x7fdf95d2a6d8> [1, 4, 9, 16]
Recommended Articles