Python erbjuder direkta metoder för att hitta permutationer och kombinationer av en sekvens. Dessa metoder finns i itertools-paketet.
Importera först itertools-paketet för att implementera permutationsmetoden i python. Den här metoden tar en lista som indata och returnerar en objektlista med tupler som innehåller alla permutationer i listform.
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 genererar n! permutationer om längden på inmatningssekvensen är n.
Om du vill få permutationer med längden L så implementera det på detta sätt.
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)
Den genererar nCr * r! permutationer om ingångssekvensens längd är n och ingångsparametern är r.
Denna metod tar en lista och en inmatning r som ingång och returnerar en objektslista med tupler som innehåller alla möjliga kombinationer av längden r i en listform.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Output:
(1, 2)(1, 3)(2, 3)
- Kombinationer avges i den lexikografiska sorteringsordningen för indata. Så om inmatningslistan är sorterad kommer kombinationstuplerna att produceras i sorterad ordning.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Output:
(2, 1)(2, 3)(1, 3)
- Element behandlas som unika baserat på deras position, inte på deras värde. Så om inmatningselementen är unika kommer det inte att finnas några upprepade värden i varje kombination.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Output:
(1, 1)(1, 3)(1, 3)
- Om vi vill kombinera samma element med samma element använder 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)
Denna artikel har bidragits av Raju Varshney. Skriv gärna kommentarer om du hittar något felaktigt, eller om du vill dela mer information om ämnet som diskuteras ovan
Artikel Taggar :
Practice Tags :