Частный случай применения map()-использование None в качестве первого аргумента.В 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Частный случай применения map()-использование None в качестве первого аргумента.В

Поиск

Частный случай применения map()-использование None в качестве первого аргумента.В

 

этом случае просто формируется список кортежей из элементов исходных последовательностей:

 

>>> l1 = [2, 7, 5, 3]

>>> l2 = [-2, 1, 0, 4]

>>> print map(None, l1, l2)

 

[(2, -2), (7, 1), (5, 0), (3, 4)]

 

Функция filter()

 

Другой часто встречающейся операцией является фильтрование исходной последовательности в соответствии с некоторым предикатом(условием).Функция filter(f, seq) принимает два аргумента:функцию с условием и последовательность,из

 

которой берутся значения.В результирующую последовательность попадут только те значения из исходной,для которой f() возвратит истину.Если в качестве f задано

 

значение None,результирующая последовательность будет состоять из тех значений исходной,которые имеют истинностное значение True.

 

Например,в следующем фрагменте кода можно избавится от символов,которые не являются буквами:

 

>>> filter(lambda x: x.isalpha(), 'Hi, there! I am eating an apple.') 'HithereIameatinganapple'

 

Списковые включения

 

Для более естественной записи обработки списков вPython 2была внесена новинка:списковые включения.Фактически это специальный сокращенный синтаксис для вложенных циклов for и условий if,на самом низком уровне которых определенное выражение добавляется к списку,например:

 

all_pairs = [] for i in range(5):

 

for j in range(5): if i <= j:


 


all_pairs.append((i, j))

 

Все это можно записать в виде спискового включения так:

 

all_pairs = [(i, j) for i in range(5) for j in range(5) if i <= j]

 

Как легко заметить,списковые включения позволяют заменить map() и filter() на более удобные для прочтения конструкции.

 

В следующей таблице приведены эквивалентные выражения в разных формах:

В форме функции В форме спискового включения



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 64; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.)