Menu Close

Mapping and Transposing with Map Module Python …FcukTheCode

Mapping values of different iterables

For example calculating the average of each i -th element of multiple iterables:

def Mod_average(*temp):
    return sum(temp)/len(temp)

Numb_1 = [1, 11, 111, 1111]
Numb_2 = [12, 17, 931, 122]
Numb_3 = [14, 10, 925, 141]
L = list(map(Mod_average, Numb_1, Numb_2, Numb_3))

print([round(i,2) for i in L])

# Output: [9.0, 12.67, 655.67, 458.0]

There are different requirements if more than one iterable is passed to map depending on the version of python:

Numb_1 = [1, 11, 111, 1111]
Numb_2 = [12, 17, 931, 122]
Numb_3 = [14, 10, 925, 141]

def median_of_three(a, b, x):
    return sorted((a, b, x))[1]
L = list(map(median_of_three, Numb_1, Numb_2))

print(L)
	

OUTPUT:
TypeError: median_of_three() missing 1 required positional argument: ‘x’

The mapping stops as soon as one iterable stops:

import operator

Numb_1 = [1, 11, 111, 1111]
Numb_2 = [12, 17, 931]

# Calculate difference between elements
L = list(map(operator.sub, Numb_1, Numb_2))
print(L) #OUT: [-11, -6, -820]

L = list(map(operator.sub, Numb_2, Numb_1))
print(L)#OUT:  [11, 6, 820]

'''
OUTPUT:  
	 [-11, -6, -820]
	 [11, 6, 820]
'''