Dictionnaire d'objet

Fermé
bongninga Messages postés 4 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020 - Modifié le 2 sept. 2020 à 20:24
bongninga Messages postés 4 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020 - 4 sept. 2020 à 17:02
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
2 sept. 2020 à 23:23
bonjour, as-tu envisagé de définir une classe pour ces objets?
0
bongninga Messages postés 4 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020
3 sept. 2020 à 00:13
Bonjour , oui j'ai fait une classe avec deux attributs. Ci-dessus mon code en entier
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
3 sept. 2020 à 11:25
ne devrais-tu pas alors utiliser ces attributs?
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
3 sept. 2020 à 11:35
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
3 sept. 2020 à 12:40
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 mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
4 sept. 2020 à 16:15
Merci pour ton aide sa marche effectivement très bien.
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > bongninga Messages postés 4 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020
4 sept. 2020 à 16:50
peux-tu alors marquer la discussion comme résolue?
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 3 sept. 2020 à 11:50
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 mercredi 2 septembre 2020 Statut Membre Dernière intervention 4 septembre 2020
4 sept. 2020 à 17:02
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