Itertools - один из самых полезных модулей, которые предоставляет Python. Его функции упрощают работу со списками и массивами. Если вам нужны все перестановки значений в массиве или вы хотите сгруппировать символы из строки, Itertools может помочь.
Написание кода для таких распространенных случаев может быть утомительным и подверженным ошибкам. Следовательно, разработчики создали библиотеки, чтобы сделать все это за вас. Вы можете использовать эти функции, импортировав Itertools. В этой статье вы узнаете о модуле Itertools в Python и его функциях.
Официальный Python документация объясняет, что Itertools содержит код для создания итераторов. Этот модуль предоставляет быстрые и эффективные функции для работы со списками и массивами.
Перед использованием этого модуля вам необходимо импортировать его, используя следующий синтаксис:
импортировать itertools
В этом модуле представлены итераторы трех разных типов.
- Бесконечные итераторы
- Комбинаторные итераторы
- Завершающие итераторы
Бесконечные итераторы
Бесконечные итераторы могут запускать цикл бесконечно. Эти функции чаще выполняются с использованием для цикла. Есть три бесконечных итератора.
1. счет (начало, шаг)
В считать() функция принимает два параметра: Начните и шаг. Цикл начинается с начального значения и возвращает значения, которые увеличиваются пошагово, по умолчанию 1. Рассмотрим пример, приведенный ниже: цикл начинается с 2 и каждый раз будет добавлять 2. Цикл прерывается, когда значение я становится 10.
для i в itertools.count (2,2):
если я == 10:
перерыв
еще:
print (я, конец = "")
Выход:
2 4 6 8
2. повторить (число, разToRepeat)
В повторить() функция принимает два параметра. Первое - это значение, которое функция производит повторно. Второй параметр - это количество раз, когда число должно повторяться. Если вы не укажете второй параметр, цикл будет выполняться бесконечно.
для i в itertools.repeat (2,5):
print (я, конец = "")
Выход:
2 2 2 2 2
3. цикл (ввод)
В цикл() функция выполняет итерацию по вводу и печатает отдельные элементы в заданном порядке. Когда он достигает конца своего ввода, цикл перезагружается с самого начала.
с = 0
var = "12345"
для i в itertools.cycle (var):
если c == 12:
перерыв
еще:
с = с + 1
print (я, конец = "")
Выход:
1 2 3 4 5 1 2 3 4 5 1 2
Комбинаторные итераторы
Комбинаторные итераторы предоставляют функции для выполнения перестановок, комбинаций и декартовых произведений.
1. продукт (ввод)
В продукт() функция вычисляет декартово произведение указанного входа. У него есть параметр повторения, который вычисляет декартово произведение итератора на самого себя. Это необязательный параметр.
массив = [1,2,3]
print (список (itertools.product (массив, повторение = 2)))
строка = "ABC"
print (список (itertools.product (строка, "XYZ")))
Выход:
Пример 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Пример 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), (' B ',' Z '), (' C ',' X '), (' C ',' Y '), (' C ',' Z ')]
2. перестановки (ввод, размер)
Эта функция возвращает кортеж всех перестановок данной итерации. Он принимает два параметра: итерацию и размер группы. Если размер группы не указан, она будет формировать группы той же длины, что и сама итерация.
arr = [1,2,3,4]
print (список (itertools.permutations (arr, 2)))
Выход:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Связанный: Функции Python, которые вы должны знать
3. комбинации (ввод, длина)
В комбинации () функция помогает вычислить комбинации данного итератора. Обратите внимание, что эта функция поддерживает порядок элементов ввода. В то время как перестановки включает значения, которые различаются только порядком, комбинации производит уникальные значения.
arr = [1,2,3,4]
print (list (itertools.combinations (arr, 3)))
Выход:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Завершающие итераторы
Завершающие итераторы производят вывод на основе условий, заданных для ввода. Вы можете лучше понять это из некоторых примеров функций.
1. накопить (ввод, оператор)
В накапливать () функция принимает два аргумента: итеративный и оператор. Он производит вывод, применяя оператор к совокупной сумме и каждому входному элементу по очереди. Оператор - необязательный аргумент. Если вы его не передадите, эта функция выполнит сложение.
оператор импорта
arr = [1,2,3,4]
печать (список (itertools.accumulate (arr)))
print (список (itertools.accumulate (arr, operator.sub)))
Выход:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. starmap (функция, ввод)
В starmap () Функция принимает в качестве аргументов функцию и список кортежей. Он вычисляет возвращаемые значения, применяя функцию к каждому кортежу на входе. В приведенном примере эта функция вычисляет максимальное значение каждого кортежа и возвращает его в виде массива.
arr = [(1,2,3), (4,5,6), (7,8,9)]
print (список (itertools.starmap (max, arr)))
Выход:
[3, 6, 9]
Связанный: Как создавать и использовать кортежи в Python
3. filterfalse (функция)
В filterfalse () функция возвращает значения, которые не соответствуют условию в переданной функции. Приведенный ниже код удаляет все нечетные значения.
arr = [1,2,3,4]
print (список (itertools.filterfalse (лямбда x: x% 2! = 0, arr)))
Выход:
[2, 4]
Продолжите свое путешествие по программированию на Python
Теперь, когда вы узнали о модуле Itertools, пришло время изучить другие модули Python. В Python есть модули и библиотеки для широкого круга задач. Они включают передовые концепции, такие как преобразование Фурье и приложения AI / ML.
Некоторые модули сложнее других, и их изучение займет больше времени. Модуль Tkinter позволяет создавать полноценные приложения с графическим интерфейсом пользователя на Python.
Улучшите свои навыки Python Tkinter с помощью этого проекта для начинающих.
Читать далее
- Программирование
- Программирование
- Python

Уннати - увлеченный разработчик полного стека. Она любит создавать проекты с использованием разных языков программирования. В свободное время она любит играть на гитаре и увлекается кулинарией.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться