Combinaisons d'une liste en Python

Samyak Jain 30 janvier 2023
  1. Utilisez la fonction itertools.combinations() pour trouver les combinaisons d’une liste en Python
  2. Utilisez la fonction itertools.combinations_with_replacement() pour trouver les combinaisons d’une liste en Python
  3. Créer une fonction powerset() définie par l’utilisateur pour trouver les combinaisons d’une liste en Python
Combinaisons d'une liste en Python

Une combinaison est une technique qui détermine le nombre d’arrangements possibles dans une collection d’éléments. Dans une combinaison d’éléments, les éléments sont sélectionnés dans un ordre arbitraire.

Dans ce tutoriel, nous allons trouver les combinaisons totales des éléments d’une liste en Python.

Utilisez la fonction itertools.combinations() pour trouver les combinaisons d’une liste en Python

La fonction combinations(list_name, x) du module itertools prend le nom de la liste et un nombre ‘x’ comme paramètres et renvoie une liste de tuples chacun de longueur ‘x’ contenant toutes les combinaisons possibles d’un élément dans la liste avec les autres éléments.

Par example,

from itertools import combinations

A = [10, 5, "Hi"]
temp = combinations(A, 2)
for i in list(temp):
    print(i)

Production:

(10, 5)
(10, 'Hi')
(5, 'Hi')

Une liste triée affichera les tuples de combinaison dans l’ordre trié. Une combinaison d’un élément de la liste avec lui-même n’est pas possible avec la fonction combinations().

Utilisez la fonction itertools.combinations_with_replacement() pour trouver les combinaisons d’une liste en Python

La fonction combinations_with_replacement(list_name, x) du module itertools prend le nom de la liste et un nombre ‘x’ comme paramètres et renvoie une liste de tuples chacun de longueur ‘x’ contenant toutes les combinaisons possibles des éléments de la liste. Une combinaison d’un élément de la liste avec lui-même est possible en utilisant cette fonction.

Par example,

from itertools import combinations_with_replacement

A = [1, 5, "Hi"]
temp = combinations_with_replacement(A, 2)
for i in list(temp):
    print(i)

Production:

(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')

Créer une fonction powerset() définie par l’utilisateur pour trouver les combinaisons d’une liste en Python

En mathématiques, un ensemble de puissance de n’importe quel ensemble est un ensemble qui contient tous les sous-ensembles possibles d’un ensemble donné ainsi qu’un ensemble vide. L’ensemble de puissance de l’ensemble S = {2, 5, 10} est {{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}. La fonction suivante powerset() est utilisée pour parcourir toutes les longueurs ‘r’ de la liste et imprimer toutes les combinaisons possibles des éléments de la liste.

Par example,

from itertools import chain, combinations


def powerset(list_name):
    s = list(list_name)
    return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))


A = [60, 7, "Hi"]
for x in powerset(A):
    print(x)

Production:

()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')

Article connexe - Python List