Sum 2D array in Python using map() function
Improve
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 functionif __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 numberdef calculateSquare(n): return n*n# numbers is a list of elementsnumbers = [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 listresult = 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]
Share your thoughts in the comments

