IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Opérateur de comparaison dans un dictionnaire


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Opérateur de comparaison dans un dictionnaire
    Bonjour,

    J'ai un dictionnaire, que j'ai rempli après un readline() d'un fichié txt, de ce type :
    module1.ligne[a] = b

    'a', correspondant à l'adresse et 'b', a la valeur de la donnée

    Mon fichier txt est comme ceci :
    0000 00AA ;
    0001 008A ;
    0002 006F ;
    0003 0006 ;
    0006 00AA ;
    0007 00AA ;

    Une fois mon opération de readline() et de trie adresse/donnée, mon dictionnaire est de ce type :

    >>> module1.ligne
    {'0000': '00AA', '0001': '008A', '0002': '006F', '0003': '0006', '0006': '00AA', '0007': '00AA'}

    Mon souci : je voudrai faire une petite fonction pour pouvoir remplir les adresses manquantes (dans mon exemple, les adresses 0004 et 0005 par la donnée = 00FF).
    Comment faire une intérogation du type :
    - module1.ligne[0000] existe ?
    ----> oui, on fait rien
    ----> non, on la crée

    Merci d'avance,

    Cdt,
    Guillaume

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    une des force de python est d'avoir accès à la documentation directement dans l'interpreteur.
    Un doute sur les méthodes d'un dictionnaire:Tu devrais trouver ton bonheur et accessoirement apprendre plein de trucs....
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Un moyen est d'utiliser la méthode get() du dictionnaire pour accéder à ses données et de renvoyer une valeur par défaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    default = '00FF'
    module1.ligne.get('0005', default)
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par pacificator Voir le message
    une des force de python est d'avoir accès à la documentation directement dans l'interpreteur.
    Un doute sur les méthodes d'un dictionnaire:Tu devrais trouver ton bonheur et accessoirement apprendre plein de trucs....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> help({})
      File "<console>", line 1, in <module>
    ''' <type 'exceptions.NameError'> : name 'help' is not defined '''
    -----

    Citation Envoyé par Thierry Chappuis Voir le message
    Un moyen est d'utiliser la méthode get() du dictionnaire pour accéder à ses données et de renvoyer une valeur par défaut:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    default = '00FF'
    module1.ligne.get('0005', default)
    Thierry
    Les adresses "manquantes" ne sont pas toujours les mêmes...

    -----

    Les codes de mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            repertoire = self.fileBrowseButton1.GetValue()
            dump = open(repertoire,'r')
            while 1:
                lecture_ligne = dump.readline()
                if lecture_ligne == "":
                    break
                a = lecture_ligne[0:4]
                b = lecture_ligne[5:9]
                module1.ligne[a] = b
    En tout cas je vous remerci de votre attention.

    Cdt,
    Guillaume

  5. #5
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Citation Envoyé par Guillaume M Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> help({})
      File "<console>", line 1, in <module>
    ''' <type 'exceptions.NameError'> : name 'help' is not defined '''
    -----
    Tu essayes dans un interpreteur ou dans ton IDE?
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Guillaume M Voir le message
    [CODE]
    Les adresses "manquantes" ne sont pas toujours les mêmes...
    Ce n'est pas grave. Si la valeur par défaut est toujours la même, il nous suffit de toujours accéder aux données du dico à l'aide de get(). Ainsi, si on cherche à accéder à une clé manquante, quelle qu'elle soit, on obtient la valeur par défaut.

    Enfin, il est possible que je ne comprenne pas bien le problème.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Je vous remercie j'ai trouvé mon bonheur.

    Cdt,
    Guillaume

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2014, 16h08
  2. Opérateur de comparaison dans une variable
    Par laguernette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2013, 18h59
  3. opérateur de comparaison dans un switch
    Par new_wave dans le forum Langage
    Réponses: 2
    Dernier message: 08/12/2008, 10h28
  4. Recherche et comparaison dans un dictionnaire
    Par metalamania dans le forum Général Python
    Réponses: 5
    Dernier message: 20/02/2007, 10h26
  5. Réponses: 15
    Dernier message: 25/01/2005, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo