GeeksforGeeks

Python fournit des méthodes directes pour trouver les permutations et les combinaisons d’une séquence. Ces méthodes sont présentes dans le paquet itertools.

Permutation

Premièrement, importez le paquet itertools pour implémenter la méthode permutations en python. Cette méthode prend une liste en entrée et renvoie une liste objet de tuples qui contiennent toutes les permutations sous forme de liste.

from itertools import permutations
perm = permutations()
for i in list(perm):
print (i)



Sortie :

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

Il génère n ! permutations si la longueur de la séquence d’entrée est n.

Si vous voulez obtenir des permutations de longueur L, alors implémentez-le de cette manière.

from itertools import permutations
perm = permutations(, 2)
for i in list(perm):
print (i)



Sortie :

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

Elle génère nCr * r ! permutations si la longueur de la séquence d’entrée est n et le paramètre d’entrée est r.

Combinaison

Cette méthode prend une liste et une entrée r en entrée et renvoie une liste objet de tuples qui contiennent toutes les combinaisons possibles de longueur r sous forme de liste.

from itertools import combinations
comb = combinations(, 2)
for i in list(comb):
print (i)



Sortie :

(1, 2)(1, 3)(2, 3)
  1. Les combinaisons sont émises dans l’ordre de tri lexicographique de l’entrée. Ainsi, si la liste d’entrée est triée, les tuples de combinaison seront produits dans l’ordre trié.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Sortie :

    (2, 1)(2, 3)(1, 3)
  2. Les éléments sont traités comme uniques en fonction de leur position, et non de leur valeur. Ainsi, si les éléments d’entrée sont uniques, il n’y aura pas de valeurs répétées dans chaque combinaison.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Sortie :

    (1, 1)(1, 3)(1, 3)
  3. Si l’on veut faire une combinaison du même élément au même élément alors on utilise les combinaisons_avec_remplacement.

    from itertools import combinations_with_replacement
    comb = combinations_with_replacement(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Sortie :

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Cet article est une contribution de Raju Varshney. S’il vous plaît écrire des commentaires si vous trouvez quelque chose d’incorrect, ou vous voulez partager plus d’informations sur le sujet discuté ci-dessus

Tags de l’article :
Tags de pratique :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.