Profilo di marcos

Nome marcos
Indirizzo email m77it@yahoo.it
AvatarAvatar utenti
Messaggi2
  • Re: Calcolo disposizioni con ripetizione - itertools?
    Forum >> Principianti
    Grazie :)
    Funziona benissimo.
    Ho rediretto l'output su un file.
    Ho visto che esiste il modulo itertools ma non mi pare contempli questo caso.

    Ciao ... beh, forse esiste
    Python 3.12.3 (main, Sep 11 2024, 14:17:37) [GCC 13.2.0] on linux
    Type "help", "copyright", "credits" or "license()" for more information.
    import itertools
    data = ['a', 'b', 'c']
    result = itertools.combinations_with_replacement(data, 4)
    for c in result:
        print(''.join(c))
    
        
    aaaa
    aaab
    aaac
    aabb
    aabc
    aacc
    abbb
    abbc
    abcc
    accc
    bbbb
    bbbc
    bbcc
    bccc
    cccc
    
    


    Leggendo meglio, forse vorresti ottenere "Tutte" le possibili combinazioni, dato che quella sopra non è completa ... in tal caso combinando con itertools.permutations e smanettando un pochino si potrebbe (occhio sono TANTE)

    comp = []
    result = itertools.combinations_with_replacement(data, 4)
    for e in result:
        per = itertools.permutations(e)
        for c in per:
            comp.append(''.join(c))
    
            
    final = sorted(list(set(comp)))
    for v in final:
        print(v)
    
        
    aaaa
    aaab
    aaac
    aaba
    aabb
    aabc
    aaca
    aacb
    aacc
    abaa
    abab
    abac
    abba
    ...
    accc
    baaa
    baab
    baac
    baba
    ...
    etc ...




    --- Ultima modifica di nuzzopippo in data 2024-10-14 09:43:20 ---
  • Calcolo disposizioni con ripetizione - itertools?
    Forum >> Principianti
    Ciao,

    dovrei calcolare tutte le disposizioni di una lista di elementi in cui gli elementi possono esser ripetuti.

    Ad es. se gli elementi sono [a,b,c] e la stringa finale composta di 4 elementi dovrei ottenere

    aaaa

    aaab

    cccc

    abcd

    e cosi' via

    Il numero di stringhe in output e' n^k dove n = numero di elementi nella lista e k= lunghezza della stringa

    Ho visto che esiste il modulo itertools ma non mi pare contempli questo caso.

    Esiste un sistema veloce?

    Grazie

    Marco