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

Написание кода для таких распространенных случаев может быть утомительным и подверженным ошибкам. Следовательно, разработчики создали библиотеки, чтобы сделать все это за вас. Вы можете использовать эти функции, импортировав Itertools. В этой статье вы узнаете о модуле Itertools в Python и его функциях.

Официальный Python документация объясняет, что Itertools содержит код для создания итераторов. Этот модуль предоставляет быстрые и эффективные функции для работы со списками и массивами.

Перед использованием этого модуля вам необходимо импортировать его, используя следующий синтаксис:

импортировать itertools

В этом модуле представлены итераторы трех разных типов.

  1. Бесконечные итераторы
  2. Комбинаторные итераторы
  3. Завершающие итераторы

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

instagram viewer

Бесконечные итераторы могут запускать цикл бесконечно. Эти функции чаще выполняются с использованием для цикла. Есть три бесконечных итератора.

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.

Как построить калькулятор в Tkinter

Улучшите свои навыки Python Tkinter с помощью этого проекта для начинающих.

Читать далее

ДелитьсяТвитнутьЭл. адрес
Похожие темы
  • Программирование
  • Программирование
  • Python
Об авторе
Уннати Бамания (Опубликовано 11 статей)

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

Ещё от Unnati Bamania

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться