Skip to content

Latest commit

 

History

History
40 lines (40 loc) · 5.7 KB

ITERTOOLS.md

File metadata and controls

40 lines (40 loc) · 5.7 KB

ITERTOOLS

Стандартная библиотека функций языка Python дает возможность программисту создавать определенные последовательности объектов и всячески ими манипулировать.
При помощи простых итераций, действующих в цикле, можно наполнять массивы неким содержимым, а пользуясь генераторами списков – задавать более сложные условия для их формирования.


import itertools *
from itertools import product


1 - с помощью этих методов можно генерировать объекты или совершать определенные действия неограниченное количество раз
2 - функции, позволяющие комбинировать различные значения, меняя местами их составляющие
3 - для управления данными в списке или любой другой последовательности значений, умеют автоматически удалять отдельные элементы, не удовлетворяющие заданных программистом условий
4 - их применение иногда также бывает очень полезным для решения многих довольно специфических задач, часто они становятся актуальны в паре с другими итераторами


Название Назначение Результат
-------- 1 -------- --------------- ----------------
count Итерация с заданным шагом без ограничений count(10) --> 10 11 12 13 14 ...
cycle Итерация с повторением без ограничений cycle('ABCD') --> A B C D A B C D ...
repeat Итерация с повторением заданное количество раз repeat(10, 3) --> 10 10 10
-------- 2 -------- --------------- ----------------
combinations Комбинация всех возможных значений без повторяющихся элементов list(combinations('DOG', 2)) --> [('D', 'O'), ('D', 'G'), ('O', 'G')]
combinations_with_replacement Комбинация всех возможных значений с повторяющимися элементами combinations_with_replacement('DOG', 2) --> [(DD, DO), (DG, OO), ...]
permutations Комбинация с перестановкой всех возможных значений permutations('DOG', 2) --> [(DO, DG), (OD, OG)...]
product product Комбинация, полученная из всех возможных значений вложенных списков list(product([1, 2], repeat=2)) --> [(1, 1), (1, 2), (2, 1), (2, 2)]
-------- 3 -------- --------------- -----------------
filterfalse Все элементы, для которых функция возвращает ложь list(filterfalse(lambda i: i == 0, [1, 2, 3, 0, 4, 5, 1])) --> [1, 2, 3, 4, 5, 1]
dropwhile Все элементы, начиная с того, для которого функция вернет ложь dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1
takewhile Все элементы, до тех пор, пока функция не вернет истину takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
compress Удаление элементов, для которых было передано значение ложь list(compress('CAT', [True, False, True])) --> ['C', 'T']
-------- 4 -------- --------------- ----------------
chain Поочередное объединение списков при помощи итераторов chain('ABC', 'DEF') --> A B C D E F
chain.from_terable Аналогично chain, но аргумент — список, в который вложены объединяемые списки (chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
islice Получение среза, благодаря указанному количеству элементов [start:stop:step] islice('ABCDEFG', 2, None) --> C D E F G
zip_longest Объединение нескольких итераций с повышением размера до максимального list(zip_longest('DOG', [0, 1, 2, 3], fillvalue = ' ')) --> [('D', 0), ('O', 1), ('G', 2), (' ', 3)]
tee Возвращает n независимых итераторов из одного итерируемого объекта tee([1, 2, 3], 3) --> [1, 2, 3] [1, 2, 3] [1, 2, 3]
groupby Группировка элементов последовательности по некоторым ключевым значениям groupby(iterable,key=None)
accumulate Каждый элемент результирующей последовательности равен сумме текущего и всех предыдущих исходной последовательности accumulate([1,2,3,4,5]) --> 1 3 6 10 15
starmap Первый аргумент — это функция. Второй аргумент — это с писок параметров, подаваемых на функцию starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000
---------------- --------------- ----------------