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] '''