Отображение значений разных итераций

Так , например вычисление среднего значения каждого i -й элемента множество итерируемых:

 def average(*args):
    return float(sum(args)) / len(args)  # cast to float - only mandatory for python 2.x

measurement1 = [100, 111, 99, 97]
measurement2 = [102, 117, 91, 102]
measurement3 = [104, 102, 95, 101]

list(map(average, measurement1, measurement2, measurement3))
# Out: [102.0, 110.0, 95.0, 100.0]

 

Существуют различные требования , если более чем один итератор передается map в зависимости от версии питона:

  • Функция должна принимать столько параметров, сколько существует итераций:

     def median_of_three(a, b, c):
        return sorted((a, b, c))[1]
    
    list(map(median_of_three, measurement1, measurement2))
     

    Ошибка типа: median_of_three () отсутствует 1 обязательный позиционный аргумент: 'c'

     list(map(median_of_three, measurement1, measurement2, measurement3, measurement3))
     

    Ошибка типа: median_of_three () принимает 3 позиционных аргумента, но 4 были заданы

- `map`: отображение повторяется до тех пор, пока одна итерация еще не используется полностью, но предполагает, что из полностью использованных итераций используется 'None': оператор импорта measure1 = [100, 111, 99, 97] measure2 = [102, 117] # Рассчитать разницу между списком элементов (map (operator.sub, measure1, measure2))> TypeError: неподдерживаемые типы операндов для -: 'int' и 'NoneType' - `itertools.imap` и` future_builtins.map`: отображение останавливается, как только останавливается одна итерация: оператор импорта из itertools импортирует измерение imap1 = [100, 111, 99, 97] измерение2 = [102, 117] # Рассчитать разницу между списком элементов (imap (operator.sub, измерение1, измерение2) ) # Out: [-2, -6] список (imap (operator.sub, измерение2, измерение1)) # Out: [2, 6] - Отображение останавливается, как только останавливается одна итерация: оператор импорта измерение1 = [100, 111, 99, 97] измерение2 = [102, 117] # Рассчитать разницу между списком элементов (map (operator.sub, measure1, measure2)) # Out: [-2, -6] список (map (operator.sub, измерение2, измерение1)) # Out: [2, 6]