GeeksforGeeks

Python erbjuder direkta metoder för att hitta permutationer och kombinationer av en sekvens. Dessa metoder finns i itertools-paketet.

Permutation

Importera först itertools-paketet för att implementera permutationsmetoden i python. Den här metoden tar en lista som indata och returnerar en objektlista med tupler som innehåller alla permutationer i listform.

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)

Det genererar n! permutationer om längden på inmatningssekvensen är n.

Om du vill få permutationer med längden L så implementera det på detta sätt.

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)

Den genererar nCr * r! permutationer om ingångssekvensens längd är n och ingångsparametern är r.

Combination

Denna metod tar en lista och en inmatning r som ingång och returnerar en objektslista med tupler som innehåller alla möjliga kombinationer av längden r i en listform.

from itertools import combinations
comb = combinations(, 2)
for i in list(comb):
print (i)



Output:

(1, 2)(1, 3)(2, 3)
  1. Kombinationer avges i den lexikografiska sorteringsordningen för indata. Så om inmatningslistan är sorterad kommer kombinationstuplerna att produceras i sorterad ordning.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Output:

    (2, 1)(2, 3)(1, 3)
  2. Element behandlas som unika baserat på deras position, inte på deras värde. Så om inmatningselementen är unika kommer det inte att finnas några upprepade värden i varje kombination.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Output:

    (1, 1)(1, 3)(1, 3)
  3. Om vi vill kombinera samma element med samma element använder vi 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. Denna artikel har bidragits av Raju Varshney. Skriv gärna kommentarer om du hittar något felaktigt, eller om du vill dela mer information om ämnet som diskuteras ovan

Artikel Taggar :
Practice Tags :

Lämna ett svar

Din e-postadress kommer inte publiceras.