Python proporciona métodos directos para encontrar permutaciones y combinaciones de una secuencia. Estos métodos están presentes en el paquete itertools.
Primero importa el paquete itertools para implementar el método de permutaciones en python. Este método toma una lista como entrada y devuelve una lista de objetos de tuplas que contienen todas las permutaciones en forma de lista.
from
itertools
import
permutations
perm
=
permutations()
for
i
in
list
(perm):
print
(i)
Salida:
(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)
Genera n! permutaciones si la longitud de la secuencia de entrada es n.
Si quieres obtener permutaciones de longitud L entonces impleméntalo de esta manera.
from
itertools
import
permutations
perm
=
permutations(,
2
)
for
i
in
list
(perm):
print
(i)
Salida:
(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)
Genera nCr * r! permutaciones si la longitud de la secuencia de entrada es n y el parámetro de entrada es r.
Este método toma una lista y una entrada r como entrada y devuelve un objeto lista de tuplas que contienen todas las posibles combinaciones de longitud r en forma de lista.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Salida:
(1, 2)(1, 3)(2, 3)
- Las combinaciones se emiten en orden lexicográfico de entrada. Así, si la lista de entrada está ordenada, las tuplas de combinación se producirán en orden ordenado.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Salida:
(2, 1)(2, 3)(1, 3)
- Los elementos son tratados como únicos en función de su posición, no de su valor. Así que si los elementos de entrada son únicos, no habrá valores repetidos en cada combinación.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Salida:
(1, 1)(1, 3)(1, 3)
- Si queremos hacer combinación del mismo elemento al mismo elemento entonces usamos combinaciones_con_reemplazo.
from
itertools
import
combinations_with_replacement
comb
=
combinations_with_replacement(,
2
)
for
i
in
list
(comb):
print
(i)
Salida:
(1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3)
Este artículo ha sido escrito por Raju Varshney. Por favor, escribe comentarios si encuentras algo incorrecto, o quieres compartir más información sobre el tema tratado
Etiquetas del artículo :
Etiquetas de la práctica :