Python fornisce metodi diretti per trovare permutazioni e combinazioni di una sequenza. Questi metodi sono presenti nel pacchetto itertools.
Prima importa il pacchetto itertools per implementare il metodo delle permutazioni in python. Questo metodo prende una lista come input e restituisce un oggetto lista di tuple che contengono tutte le permutazioni in forma di lista.
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)
Genera n! permutazioni se la lunghezza della sequenza di ingresso è n.
Se vuoi ottenere permutazioni di lunghezza L allora implementala in questo modo.
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)
Genera nCr * r! permutazioni se la lunghezza della sequenza di input è n e il parametro di input è r.
Questo metodo prende una lista e un input r come input e restituisce un oggetto lista di tuple che contengono tutte le possibili combinazioni di lunghezza r in forma di lista.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Output:
(1, 2)(1, 3)(2, 3)
- Le combinazioni sono emesse in ordine lessicografico di input. Quindi, se la lista di input è ordinata, le tuple di combinazione saranno prodotte in ordine ordinato.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Uscita:
(2, 1)(2, 3)(1, 3)
- Gli elementi sono trattati come unici in base alla loro posizione, non al loro valore. Quindi se gli elementi di input sono unici, non ci saranno valori ripetuti in ogni combinazione.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Output:
(1, 1)(1, 3)(1, 3)
- Se vogliamo fare la combinazione dello stesso elemento allo stesso elemento allora usiamo 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)
Questo articolo è stato contribuito da Raju Varshney. Si prega di scrivere commenti se si trova qualcosa di sbagliato, o si desidera condividere ulteriori informazioni sull’argomento discusso sopra
Articolo Tag :
Tag di pratica :