Журнал Системный Администратор, Октябрь 2006

Журнал Системный Администратор

Октябрь 2006

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Полезные советы по Python

Используйте функцию map()

И не только её. Python предоставляет три мощных функции для обработки последовательностей – map(), filter() и reduce(). Первая позволяет применить к каждому элементу одной или нескольких последовательностей заданную функцию, вторая – получить подпоследовательность по тому или иному критерию, третья – «свернуть» последовательность (например, просуммировать все элементы):

>>> def tostr(a, b):

...              return a + b

...

>>> list = [1,2,3,4,5]

>>> map(str, list)

['1', '2', '3', '4', '5']

>>> filter(lambda i: i>3, list)

[4, 5]

>>> reduce(tostr, list)

15

>>> reduce(tostr, map(str, list))

'12345'

Это не только удобно, но и быстро, поскольку внутренний цикл этих функций реализован на C. Для функции filter() показано применение lambda-функции. Так же можно было бы поступить и в случае с reduce(), но для наглядности оставлен «классический» способ.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке