Python tilbyder direkte metoder til at finde permutationer og kombinationer af en sekvens. Disse metoder findes i itertools-pakken.
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.
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)
- 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)
- 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)
- 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)
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 :