GeeksforGeeks

Python fornisce metodi diretti per trovare permutazioni e combinazioni di una sequenza. Questi metodi sono presenti nel pacchetto itertools.

Permutazione

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.

Combination

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)
  1. 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)
  2. 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)
  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) 
  4. 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 :

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.