Dictionnaire d'objet

bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essaye de faire un dictionnaire python qui va contenir un objet (avec plusieurs attribut). le but étant a partir d'une seule clé avoir 3 valeurs.
Mon problème est que je n'arrive pas à afficher les attributs de l'objet hors de ma boucle de traitement.
Mon but est de pouvoir afficher le dictionnaire avec les valeurs comme tel : cle = "mot1" et occurrence = 1 et appartenance au dictionnaire = True.

merci beaucoup pour votre aide

voici mon code

class WordProperty:

    def __init__(self, occurence, appartenanceDico):
        self.occurence=occurence
        self.appartenanceDico=appartenanceDico

class LexicalAnalysis ():
    def __init__(self, ):
        #self.ObjetWordProperty=WordProperty(self.Ocurence, self.AppartenanceDico, self.nomPropre)
        self.mapDifferentWord={}
    def TraitementTexte(self,chaineDeMots,DictionnaireDeMot):
        Ocurence = 1
        AppartenanceDico = True
        nomPropre = True
        listeChaine = chaineDeMots.split()
        DictionnaireDeMot = DictionnaireDeMot

        for mot in listeChaine:
            if mot not in self.mapDifferentWord:
                Ocurence=listeChaine.count(mot)
                if mot  in DictionnaireDeMot:
                    AppartenanceDico= True
                else:
                    AppartenanceDico = False
                ObjetWordProperty = WordProperty(Ocurence, AppartenanceDico)
                self.mapDifferentWord[mot] = {ObjetWordProperty}
    def diplayMapDifferentWord(self):
        #DicoCle=self.mapDifferentWord.keys()
        for cle in self.mapDifferentWord :

            print("cle = ",cle)
            print("occurence=", self.mapDifferentWord.get(cle)) 
            #print("{} : Occurence = {}  ".format(cle, self.ObjetWordProperty.occurence))
if __name__ == "__main__":
    chaine = "salut ça va ? Oui ça va"
    dictionnaireDeMot=["salut"]
    objetAnalyseTexte = LexicalAnalysis()
    objetAnalyseTexte.TraitementTexte(chaine, dictionnaireDeMot)
    objetAnalyseTexte.diplayMapDifferentWord()

Configuration: Windows / Chrome 85.0.4183.83
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, as-tu envisagé de définir une classe pour ces objets?
0
bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour , oui j'ai fait une classe avec deux attributs. Ci-dessus mon code en entier
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
ne devrais-tu pas alors utiliser ces attributs?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
exemple:
    def diplayMapDifferentWord(self):
        for cle in self.mapDifferentWord :
            for wp in self.mapDifferentWord.get(cle):
                print("{} : Occurence = {}  ".format(cle, wp.occurence))
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
je pense que ton soucis vient des accolades en ligne 26, que tu utilises peut-être sans en comprendre l'effet.
0
bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci pour ton aide sa marche effectivement très bien.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu alors marquer la discussion comme résolue?
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour Bongniga,


Juste pour info (je ne sais pas si c'est pertinent dans ton cas, mais c'est pour la précision du vocabulaire):

Tu définis une variable dictionnaireDeMot=["salut"]

Mais, pour être précis, en Python, ce que l'on appelle un dictionnaire, c'est un couple clé+valeur:

dico = {'nom': 'Menvussa', 'Prenom':'Gérard'}


Ton dictionnaire de mots, en fait, c'est une liste ...
0
bongninga Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Phil_1857
Oui je vois que sa peut prêter a confusion , c'est en faite une liste de mots (que je compte récupéré d'un fichier texte pour le traitement)
Merci
0