Problème de codage python

Fermé
daph2 - Modifié le 2 mars 2022 à 14:36
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 2 mars 2022 à 14:40
Bonjour,

À partir d'une string (par exemple :
"lalalalilalilololo"
), je veux isoler les paires pour les remplacer par un autre caratères d'une autre string (par exemple :
"ABCDEF"
).

Merci infiniment de votre aide!

Voici ce que j'ai fait (et qui ne marche pas) jusqu'à maintenant :

SYMBOLES = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def trouver_paire_la_plus_frequente(chaine):
    paire_plus_freq = chaine[0:2]
    max_rep = 0
    for ch in range(len(chaine) - 1):
        paire = chaine[ch:ch + 2]
        rep = 0
        for i in range(len(chaine)):
            paire_act = chaine[i:i + 2]
            if paire == paire_act:
                rep += 1
        if rep > max_rep:
            max_rep = rep
            paire_plus_freq = paire
    return paire_plus_freq

def remplacer_paire_par_symbole(chaine: object, paire: object, symbole: object) -> object:  
    nouvelle_chaine = ""
    i = 0
    while i < len(chaine):
        if chaine[i:i+2] == paire:
            nouvelle_chaine += symbole
            i += 2
        else:
            nouvelle_chaine += chaine[i]
            i += 1
    return nouvelle_chaine

def compression_par_paires(chaine): 
    for i in SYMBOLES:
        paire_plus_frequente = trouver_paire_la_plus_frequente(chaine)
        if len(paire_plus_frequente) == 2 :
            chaine_nouvelle = remplacer_paire_par_symbole(chaine, paire_plus_frequente, i)
    return chaine_nouvelle
A voir également:

1 réponse

mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 7 809
Modifié le 2 mars 2022 à 14:45
Bonjour,
  • Peux tu clarifier dans ton exemple le résultat attendu ?
  • Comment est définie ta notion de "paire" ? S'agit il des caractère
    chaine[i:i+2]
    pour chaque valeur paire de
    i
    ? Ou n'importe quelle paire de caractère consécutif ?
  • Comment doit être faite la substitution ? Est-ce que tu modifies la i-ème paire (distincte) par le i-ème symbole ? Ou est-ce que tu veux substituer la paire la plus fréquente par le premier caractère, la 2ème paire la plus fréquente par le 2e caractère.
  • Confirmes-tu que les paires substituées peuvent à terme impliquer des symboles de substitutions ?


Bonne chance
0