logo

Перестановка та комбінування в Python

У цьому посібнику ми дізнаємося, як отримати перестановку та комбінацію даних за допомогою Python. Ми використаємо вбудований пакет Python, щоб знайти перестановку та комбінацію заданого числа.

Перестановка та комбінування є важливою частиною математики. Python надає бібліотеку itertools, яка має вбудовані функції для обчислення перестановки та комбінації.

Імпорт необхідної бібліотеки

Щоб обчислити перестановку та комбінацію, нам потрібно імпортувати бібліотеку itertools. Ми можемо імпортувати його за допомогою наведеної нижче команди.

 import itertools 

Наведений вище оператор імпортує бібліотеку itertools і формує шлях до її функції.

Тепер нам потрібно створити список послідовності як вхідних даних. Цей список вхідних даних поверне кортеж, який складається з перестановки та комбінації. Ми також можемо встановити довжину перестановки та комбінації.

Перестановка

Перестановка — це розташування множини, де порядок має значення. Модуль Python itertools забезпечує вбудований перестановка() метод пошуку перестановки. Давайте розберемося в наступному прикладі.

приклад -

 from itertools import permutations seq = permutations(['1','2','3']) print(seq) for p in list(seq): print(p) 

Вихід:

як оновити java
 ('1', '2', '3') ('1', '3', '2') ('2', '1', '3') ('2', '3', '1') ('3', '1', '2') ('3', '2', '1') 

У наведеному вище коді ми імпортували модуль itertools. Ми подзвонили перестановка() метод, який приймає рядок як аргумент і надає об’єкт itertools. Для отримання кожної перестановки необхідно використовувати цикл for.

Візьмемо два набори перестановок.

Приклад - 2

 from itertools import permutations seq = permutations(['A','B']) for p in list(seq): print(p) 

Вихід:

string.compareto c#
 ('A', 'B') ('A', 'C') ('B', 'C') 

Приклад - 3

 from itertools import permutations list1 = [1, 2, 3, 4] seq = permutations(list1) print(seq) for p in list(seq): print(p) 

Вихід:

 (1, 2, 3, 4) (1, 2, 4, 3) (1, 3, 2, 4) (1, 3, 4, 2) (1, 4, 2, 3) (1, 4, 3, 2) (2, 1, 3, 4) (2, 1, 4, 3) (2, 3, 1, 4) (2, 3, 4, 1) (2, 4, 1, 3) (2, 4, 3, 1) (3, 1, 2, 4) (3, 1, 4, 2) (3, 2, 1, 4) (3, 2, 4, 1) (3, 4, 1, 2) (3, 4, 2, 1) (4, 1, 2, 3) (4, 1, 3, 2) (4, 2, 1, 3) (4, 2, 3, 1) (4, 3, 1, 2) (4, 3, 2, 1) 

У наведеному вище коді ми отримали комбінацію кількох цілих чисел.

Перестановка фіксованої довжини

Ми можемо обчислити перестановку набору фіксованої довжини, де ми беремо лише певну кількість перестановок кожного елемента. Давайте розберемося в наступному прикладі.

приклад -

 from itertools import permutations seq = permutations(['H', 'e', 'l', 'l', 'o'], 3) for p in list(seq): print(p) 

Вихід:

 ('H', 'e') ('H', 'l') ('H', 'l') ('H', 'o') ('e', 'H') ('e', 'l') ('e', 'l') ('e', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('o', 'H') ('o', 'e') ('o', 'l') ('o', 'l') 

У наведеному вище коді ми обчислили фіксовану перестановку, передавши довжину як дві.

Комбінація рядка

Комбінація – це сукупність елементів, порядок яких не має значення. Python itertools модуль забезпечує комбінація() метод обчислення комбінації заданих даних. Ми можемо обчислити комбінацію рядка. Давайте розберемося в наступному прикладі.

приклад -

 import itertools seq = 'ABC' com_seq = itertools.combinations(seq, 2) for c in com_seq: print(c) 

Вихід:

cdr повна форма
 ('A', 'B') ('A', 'C') ('B', 'C') 

Поєднання із заміною

Модуль itertools складається з іншого методу під назвою комбінація_із_заміною() який також бере до уваги комбінацію самого числа. Розберемося на його прикладі.

Комбінація числового набору

 from itertools import combinations_with_replacement com = combinations_with_replacement(['J', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't'], 2) #Print the list of combinations for c in list(com): print(c) 

Вихід:

 ('J', 'J') ('J', 'a') ('J', 'v') ('J', 'a') ('J', 't') ('J', 'p') ('J', 'o') ('J', 'i') ('J', 'n') ('J', 't') ('a', 'a') ('a', 'v') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('v', 'v') ('v', 'a') ('v', 't') ('v', 'p') ('v', 'o') ('v', 'i') ('v', 'n') ('v', 't') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('t', 't') ('t', 'p') ('t', 'o') ('t', 'i') ('t', 'n') ('t', 't') ('p', 'p') ('p', 'o') ('p', 'i') ('p', 'n') ('p', 't') ('o', 'o') ('o', 'i') ('o', 'n') ('o', 't') ('i', 'i') ('i', 'n') ('i', 't') ('n', 'n') ('n', 't') ('t', 't') 

Комбінація числового набору

Якщо дані вхідні дані відсортовані, комбінаційні кортежі повертатимуться у відсортованому порядку. Давайте розберемося в наступному прикладі.

приклад -

 import itertools v = [1, 2, 3, 4] com_seq = itertools.combinations_with_replacement(v, 3) for i in com_seq: print(i) 

Вихід:

 (1, 1, 1) (1, 1, 2) (1, 1, 3) (1, 1, 4) (1, 2, 2) (1, 2, 3) (1, 2, 4) (1, 3, 3) (1, 3, 4) (1, 4, 4) (2, 2, 2) (2, 2, 3) (2, 2, 4) (2, 3, 3) (2, 3, 4) (2, 4, 4) (3, 3, 3) (3, 3, 4) (3, 4, 4) (4, 4, 4) 

У цьому підручнику ми обговорювали модуль itertools для пошуку перестановки та комбінації заданих даних за допомогою сценарію Python.