GeeksforGeeks

Python tilbyder direkte metoder til at finde permutationer og kombinationer af en sekvens. Disse metoder findes i itertools-pakken.

Permutation

Importér først itertools-pakken for at implementere permutationsmetoden i python. Denne metode tager en liste som input og returnerer en objektliste af tupler, der indeholder alle permutationer i en listeform.

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



Output:

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

Det genererer n! permutationer, hvis længden af den indgående sekvens er n.

Hvis du ønsker at få permutationer af længde L, skal du implementere det på denne måde.

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



Output:

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

Det genererer nCr * r! permutationer, hvis længden af inputsekvensen er n og inputparameteren er r.

Combination

Denne metode tager en liste og et input r som input og returnerer en objektliste af tupler, som indeholder alle mulige kombinationer af længde r i listeform.

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



Output:

(1, 2)(1, 3)(2, 3)
  1. Kombinationer udsendes i leksikografisk sorteringsrækkefølge efter input. Så hvis inputlisten er sorteret, vil kombinationstuplerne blive produceret i sorteret rækkefølge.

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

    
    

    
    

    Output:

    (2, 1)(2, 3)(1, 3)
  2. Elementer behandles som unikke på baggrund af deres position, ikke på baggrund af deres værdi. Så hvis indgangselementerne er unikke, vil der ikke være nogen gentagne værdier i hver kombination.

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

    
    

    
    

    Output:

    (1, 1)(1, 3)(1, 3)
  3. Hvis vi ønsker at lave en kombination af samme element til samme element, bruger vi combinations_with_replacement.

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

    
    

    
    

    Output:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Denne artikel er bidraget af Raju Varshney. Skriv venligst kommentarer, hvis du finder noget forkert, eller hvis du ønsker at dele flere oplysninger om det emne, der er diskuteret ovenfor

Artikel Tags :
Practice Tags :

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.