Функции итератора в Python | Набор 2 (islice(), starmap(), tee()..)

| |

1. islice (повторяемый, запуск, остановка, шаг) : — этот итератор выборочно печатает значения, указанные в его итерируемом контейнере, переданном в качестве аргумента. Этот итератор принимает 4 аргумента, итеративный контейнер, начальную позицию, конечную позицию и шаг.

2. звездная карта (функция, список кортежей) : — Этот итератор принимает функцию и список кортежей в качестве аргумента и возвращает значение в соответствии с функцией из каждого кортежа в списке.

# Код Python для демонстрации того, как он работает
# islice () и starmap ()


# import & quot; itertools " для операций итератора

import itertools


# инициализирующий список

li = [ 2 , 4 , 5 , 7 , 8 , 10 , 20 ]


# инициализируем список кортежей

li1 = [( 1 , 10 , 5 , ( 8 , 4 , 1 ), ( 5 , 4 , 9 ), ( 11 , 10 , 1 )]


# с использованием islice ( ) для нарезки списка в соответствии с ... необходимостью
# начинает печать со 2-го индекса до 6-го пропуска 2

print ( "Значения нарезанного списка:" , end = "")

print ( list (itertools.islice (li, 1 , 6 , 2 ) ))


# с помощью starmap() выбрать значение соотв. function
# выбирает минимальное из всех значений кортежа

print ( "Значения, соответствующие функции:" , end = "")

print ( list (itertools.starmap( min , li1)))

Вывод:

 Значения нарезанного списка: [4, 7, 10] Значения в соотв. функции: [1, 1, 4, 1] 

3. takewhile (func, iterable) : — этот итератор противоположен drop while(), он печатает значения до тех пор, пока функция не вернет false в первый раз.

4. tee (итератор, счетчик) : — Этот итератор разбивает контейнер на несколько итераторов , упомянутых в аргументе.

# Код Python для демонстрации того, как он работает
# takewhile() и tee()


# import " itertools " для операций итератора

import itertools


# инициализирующий список

li = [ 2 , 4 , 6 , 7 , 8 , 10 , 20 ]


# сохранить список в итераторе

iti = iter (li)


# использование takewhile() для печати значений до тех пор, пока условие не станет ложным.

print ( " Значения списка до 1-го ложного значения: " , end = " ")

print ( список (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# использование tee ( ) для получения списка итераторов
# составляет список из 3 итераторов с одинаковым значением.

it = itertools.tee (iti , 3 )


# печать значений итератора

print ( "Итераторы:" )

for i in range ( 0 , 3 ): < /p>

print ( list (it [i]))

Вывод:

<пр e> Значения списка до 1-го ложного значения: [2, 4, 6] Итераторы: [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7 , 8, 10, 20]

5. zip_longest (iterable1, iterable2, fillval.) : &# 8212; этот итератор печатает значения итерируемых объектов по одному . Если одна из итераций печатается полностью, оставшиеся значения заполняются значениями, присвоенными fillvalue .

# Код Python для демонстрации того, как он работает
# zip_longest ()


# import " itertools " для операций итератора

import itertools


# использование zip_longest() для объединения двух итераций.

print ( "Объединенные значения ​итераций:" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , fillvalue = ’_’ )))

Вывод:

 Комбинированные значения итераций: (’G’,’ e’) (’e ’,’к’) (’с’,’ф’) (’о’,’р’) (’Г’,’е’) (’э’,’к’) (’с’,’_’ ) 

Комбинаторные итераторы

1. product (iter1, iter2) : — Этот итератор печатает декартово произведение двух итерируемых контейнеров, переданных в качестве аргументов.

2. перестановки (iter, group_size) : — этот итератор печатает все возможные перестановки всех элементов итерируемого объекта. Размер каждой группы перестановок определяется аргументом group_size .

# Демонстрационный код Python
# product() и permutation()


# import " itertools " для операций итератора

import itertools


# использование product() для печати декартова произведения

print ( "Декартово произведение контейнеров равно:" )

print ( list (itertools.product ( ’AB’ , ’ 12’ )))


# использовать перестановки для вычисления всех возможных перестановок

print ( "Все перестановки данного контейнера:" < класс кода = "plain">)

print ( list (itertools.permutations ( ’GfG’ , 2 )))

Вывод:

 Декартово произведение контейнеров: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Все перестановки данного контейнера: [(’ G’, ’f’), (’ G ’, ’G’), (’f’, ’G’), (’f’, ’G’), (’G’, ’G’), (’G’, ’f’)] 

3. комбинации (итерируемые, group_size) : — этот итератор печатает все возможные комбинации (без замены) контейнера, переданного в аргументах указанного размера группы в отсортированном порядке.

4. комбинации_с_заменой (итерируемые, размер_группы) : — этот итератор печатает все возможные комбинации (с заменой) контейнера, переданного в аргументах указанного размера группы в отсортированном порядке.

# код Python для демонстрации того, как он работает
# комбинация () и комбинация_с_заменой ()


# import " itertools " для операций итератора

import itertools


# используйте комбинации () для печати каждой комбинации
# (без замен)

print ( "Все комбинации контейнера в отсортированном порядке (без замены): " )

print ( list (itertools.combinations ( ’1234’ , 2 )))


# использование comboination_with_replacement() для печати каждой комбинации
# с заменой

print ( "Все комбинации контейнера в отсортированном порядке (с заменой ) is:" )

print ( list (itertools.combinations_with_replacement ( ’GfG’ , 2 )))

Вывод:

 Вся комбинация контейнеров в отсортированном порядке (без замены): [(’ 1’, ’2’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4’)] Все комбинации контейнеров в отсортированном порядке (с заменой): [(’G’, ’G’), (’G’, ’f’), (’G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Бесконечно итераторы

1. количество (начало, шаг) : — Этот итератор начинает печать с "start" и печатает бесконечно . Если упоминаются шаги, числа пропускаются, иначе шаг равен 1 по умолчанию.

Пример:

 iterator.count (5,2) печатает - 5,7,9,11 .. . бесконечно 

2. цикл (повторяемый) : — этот итератор печатает все значения по порядку из переданного контейнера. Он снова возобновляет печать с самого начала, когда все элементы зациклены .

Пример:

 iterator.cycle ([1,2,3,4]) печатает - 1,2,3,4,1,2,3,4,1 . .. бесконечно 

3. Repeat (val, num) : — Этот итератор повторно печатает переданное значение бесконечное количество раз. Если число упоминается, они до этого числа.

# Код Python для демонстрации того, как он работает
# Repeat ()


# import " itertools " для операций итератора

import itertools


# использование repeat() для повторной печати числа

print ( "Повторная печать чисел:" )

print ( list (itertools.repeat ( 25 , 4 )) )

Вывод:

 Печать повторяющиеся числа: [25, 25, 25, 25] 

Эта статья предоставлена ​​ Манджит Сингх . Если вы представляете Python.Engineering и хотели бы внести свой вклад, вы также можете написать статью, используя вклад.python.engineering или опубликовав статью. внести свой вклад @ python.engineering. См. мою статью на домашней странице Python.Engineering и помогите другим гикам.

Пожалуйста, оставляйте комментарии, если вы обнаружите что-то не так или если вы хотите поделиться дополнительной информацией по теме, обсуждавшейся выше.