Dictionnaire d'objet

Signaler
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020
-
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020
-
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

3 réponses

Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020
680
bonjour, as-tu envisagé de définir une classe pour ces objets?
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020

Bonjour , oui j'ai fait une classe avec deux attributs. Ci-dessus mon code en entier
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020
680
ne devrais-tu pas alors utiliser ces attributs?
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020
680 >
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020

exemple:
    def diplayMapDifferentWord(self):
        for cle in self.mapDifferentWord :
            for wp in self.mapDifferentWord.get(cle):
                print("{} : Occurence = {}  ".format(cle, wp.occurence))
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020
680 >
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020

je pense que ton soucis vient des accolades en ligne 26, que tu utilises peut-être sans en comprendre l'effet.
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020
>
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020

Merci pour ton aide sa marche effectivement très bien.
Messages postés
12025
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 septembre 2020
680 >
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020

peux-tu alors marquer la discussion comme résolue?
Messages postés
349
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 septembre 2020
57
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 ...
Messages postés
4
Date d'inscription
mercredi 2 septembre 2020
Statut
Membre
Dernière intervention
4 septembre 2020

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