Python fornece métodos directos para encontrar permutações e combinações de uma sequência. Estes métodos estão presentes no pacote itertools.
Primeiro pacote itertools de importação para implementar o método de permutações em python. Este método toma uma lista como entrada e retorna uma lista de objetos de tuplos que contém todas as permutações em forma de lista.
from
itertools
import
permutations
perm
=
permutations()
for
i
in
list
(perm):
> print
(i)
Saída:
(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)
Gera n! permutações se o comprimento da sequência de entrada for n.
Se quiser obter permutações de comprimento L, implemente-o desta forma.
from
itertools
import
permutations
perm
=
permutations(,
>2
)
for
i
in
list
(perm):
print
(i)
Saída:
(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)
Gera permutações nCr * r! se o comprimento da sequência de entrada for n e o parâmetro de entrada for r.
Este método toma uma lista e uma entrada r como entrada e retorna uma lista de objectos de tuplos que contêm todas as combinações possíveis de comprimento r numa forma de lista.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Eliminar:
(1, 2)(1, 3)(2, 3)
- Combinações são emitidas em ordem lexicográfica de entrada. Assim, se a lista de entradas for ordenada, a combinação de tuplos será produzida em ordem de ordenação.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Eliminar:
(2, 1)(2, 3)(1, 3)
- Elementos são tratados como únicos com base na sua posição, não no seu valor. Portanto, se os elementos de entrada forem únicos, não haverá valores de repetição em cada combinação.
from
itertools
import
combinations
comb
=
combinations(,
2
)
for
i
in
list
(comb):
print
(i)
Eliminar:
(1, 1)(1, 3)(1, 3)
- Se quisermos fazer combinação do mesmo elemento para o mesmo elemento, então usamos combinações_com_substituição.
from
itertools
import
combinations_with_replacement
comb
=
combinations_with_replacement(,
2
)
for
i
in
list
(comb):
print
(i)
Eliminar:
(1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3)
Este artigo é contribuído por Raju Varshney. Por favor, escreva comentários se você encontrar algo incorreto, ou se você quiser compartilhar mais informações sobre o tópico discutido acima
Etiquetas de artigos :
Etiquetas de prática :