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 :

comment organiser les noms des clés de dictionnaire


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut comment organiser les noms des clés de dictionnaire
    Bonjour,

    je sais pas trop comment expliquer mais je cherche une methode efficace et pratique d'avoir accès a des donnees contenus dans un dictionnaire entre plusieurs codes et BD.

    Imaginons que j'ai un diccionaire avec la cle suivante:

    Pour l'usage dans un editeur type pyCharm, c'est bien pratique car les strings apparraissent d'une couleur specifique et facilite la lisibilité du code.

    Le problème c'est que ce diccionaire peut avoir des changements dans le futur et je voudrais avoir un type de patron pour les clés du diccionaire, du genre définir des variables avec les chaines de caracteres puis utiliser ces variables a la place de la chaine, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    id = 'NAME'
    leg1 = 'LEG1'
    dictX[id][leg1]
    Seulement vooila, je trouve mon nouveau code bcp moins lisible, y-a-t-il un moyen de garder le cote pratique des cles String tout en faisant ce que je souhaite?

    Merci bien.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Ça:
    Citation Envoyé par micamused Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    id = 'NAME'
    leg1 = 'LEG1'
    dictX[id][leg1]
    C'est on ne peut plus courant, très souvent les clés sont des données non connues lors du développement ou plus simplement elles sont contextuelles.

    Que tu trouves cela moins lisible m'étonne, si tu connais la clé parce qu'elle appartient au code et que c'est celle-là qui est attendue alors utilise-la et ne la remplace pas par un nom.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut
    Salut VinsS,

    je pensais pas que c'était standard de faire ça.

    En fait mon problème est le suivant, je pense que j'ai pas vraiment posé la bonne question. Moi j'avais un code ou j'utilisais toujours des cles en mayuscules et String ...

    Un collegue a créé une BD avec toutes les clé de dict en minuscule. Maintenant on a décider de mettre les clés dans des variables pour éviter de faire un Replace All dans tout le code chaque fois qu'un nom change dans la base.

    Donc j'ai deux problemes:

    1) je trouve ca tres peu lisible les cles de diccionaires qui ne sont pas des String.

    2) y-a-il un element qui permettrait d'avoir une couleur spécifique, du genre une structure avec tous les noms:

    struct st
    {
    ID : "id"
    LEG: "leg"
    }

    et ensuite avoir une couleur spécifique de la clé quand je fais dictX[st.ID]

    J'ai aucune idée si un truc similaire est faisable, mais c'est ce que je cherche à faire au mieux.

    Merci.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    En Python, on peut faire des choses étranges mais il faut un emballage plus sophistiqué que de simples "dict".
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class Data:
        _labels = ('id', 'leg1') 
     
        def __init__(self, id, leg1):
            self.id = id
            self.leg1 = leg1
     
        def __getitem__(self, key):
            assert key in (self._labels)
            return getattr(self, key)
     
    item = Data(1, 'toto')    
     
    print (item['id'])
    print (item['leg1'])
    Je truande un peu car ce n'est plus tout à fait dictX['ID']['LEG1'] mais c'est juste pour vous donner l'idée.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/09/2007, 17h35
  2. [JTABLE] Comment changer les noms des colonnes?
    Par uzumaki_naruto dans le forum Composants
    Réponses: 2
    Dernier message: 31/03/2007, 21h57
  3. [VBA EXCEL] comment effacer les noms des querytables
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2006, 17h06
  4. [MySQL] Comment connaître les noms des tables existantes
    Par Cygnus Saint dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/03/2006, 20h26
  5. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/12/2005, 23h19

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