Python oferă metode directe pentru a găsi permutări și combinații ale unei secvențe. Aceste metode sunt prezente în pachetul itertools.
În primul rând importați pachetul itertools pentru a implementa metoda permutărilor în python. Această metodă primește ca intrare o listă și returnează un obiect listă de tupluri care conține toate permutările sub formă de listă.
from
itertools
import
permutations
perm
=
permutations()
for
i
in
list
(perm):
print
(i)
Scoate:
(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)
Generează n! permutări dacă lungimea secvenței de intrare este n.
Dacă doriți să obțineți permutări de lungime L, atunci implementați-l în acest mod.
from
itertools
import
permutations
perm
=
permutations(,
2
)
for
i
in
list
(perm):
print
(i)
Ieșire:
(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)
Generează nCr * r! permutări dacă lungimea secvenței de intrare este n și parametrul de intrare este r.
Această metodă ia ca intrare o listă și o intrare r și returnează un obiect listă de tuple care conține toate combinațiile posibile de lungime r sub formă de listă.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Scoate:
(1, 2)(1, 3)(2, 3)
- Combinațiile sunt emise în ordinea de sortare lexicografică a intrării. Astfel, dacă lista de intrare este sortată, tuplurile de combinații vor fi produse în ordine sortată.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Scoate:
(2, 1)(2, 3)(1, 3)
- Elementele sunt tratate ca fiind unice în funcție de poziția lor, nu de valoarea lor. Astfel, dacă elementele de intrare sunt unice, nu vor exista valori repetate în fiecare combinație.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Scoate:
(1, 1)(1, 3)(1, 3)
(1, 1)(1, 3)(1, 3)
- Dacă vrem să facem combinații de același element cu același element, atunci folosim combinations_with_replacement.
from
itertools
import
combinations_with_replacement
comb
=
combinations_with_replacement(,
2
)
for
i
in
list
(comb):
print
(i)
Scoatere:
(1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3)
Acest articol este realizat de Raju Varshney. Vă rugăm să scrieți comentarii dacă găsiți ceva incorect, sau dacă doriți să împărtășiți mai multe informații despre subiectul discutat mai sus
Etichete articol :
Etichete de practică :