БИБЛИОТЕКА ITERTOOLS
Оглавление
itertools — это стандартная библиотека Python, содержащая набор быстрых, экономичных по памяти инструментов для создания итераторов. Особенно нужны функции product и permutations. Их часто путают, но они решают разные задачи.Данная библиотека может быть использована в простых задачах ЕГЭ (особенно в номер 8)
product
Основные характеристики:
1. Что делает: Создает упорядоченные пары/кортежи, где первый элемент берется из первого набора, второй — из второго, и так далее.
2. Размещение с повторениями: Если нужно умножить объект сам на себя, используется аргумент repeat (например, product(A, repeat=3) равно product(A, A, A)).
3. Эффективность: Элементы генерируются лениво (lazy evaluation), а не хранятся все сразу.
4. Результат: Функция возвращает итератор, что экономит память.
Пример: создание всех возможных комбинаций при подкидывании монетки 3 раза (0 – орёл, 1 – решка)
1 2 3 4 5 6
permutations
Основные характеристики:
1. Уникальность позиций: Элементы считаются уникальными по их положению, а не значению. Если во входных данных есть дубликаты, перестановки будут повторяться.
2. Длина перестановки: Если количество повторений не указано, длина равна длине исходной последовательности.
3. Лексикографический порядок: Если входной список отсортирован, все перестановки генерируются в отсортированном порядке.
4. Результат: Функция возвращает итератор, что экономит память.
Пример: создание всех вариаций перестановок длины 2 первых трёх букв английского алфавита
1 2 3 4 5 6
Важное замечание
Если написать print(product(...)) или print(permutations(...)) без оборачивания в list(), выведется объект класса itertools. Поэтому результат нужно дополнительно оборачивать в список
