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 :

Union de plusieurs dictionnaires


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut Union de plusieurs dictionnaires
    Bonjour

    J'ai plusieurs dictionnaires, et j'ai parfois besoin de faire la même opération sur tous.
    Plutot que de ré-écrire la même boucle pour chaque dictionnaire, je cherche donc à faire une boucle sur tous en même temps, mais je ne connais pas la syntaxe ?

    Cas concret :
    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
    16
    17
    18
    19
    20
    21
    22
     
    NATIONAL = {}
    TAB_R = {}
    TAB_S = {}
     
     
    NATIONAL['SOCIETE']        = {'code':'','page':RAC+"/SOCIETE/"}
    NATIONAL['GROUPEMENT']     = {'code':'','page':RAC+"/GROUPEMENT/"}
    NATIONAL['TOUTES_REGIONS'] = {'code':'','page':RAC+"/TOUTES_REGIONS/"}
     
    TAB_R['R0']   = {'code':'0',   'page':RAC+"/REGION_0/"}
    TAB_S['S071'] = {'code':'071', 'page':RAC+"/SECTEUR_071/"}
     
    TAB_R['R1']   = {'code':'1',   'page':RAC+"/REGION_1/"}
    TAB_S['S101'] = {'code':'101', 'page':RAC+"/SECTEUR_101/"}
    TAB_S['S102'] = {'code':'102', 'page':RAC+"/SECTEUR_102/"}
    TAB_S['S103'] = {'code':'103', 'page':RAC+"/SECTEUR_103/"}
    TAB_S['S104'] = {'code':'104', 'page':RAC+"/SECTEUR_104/"}
    TAB_S['S105'] = {'code':'105', 'page':RAC+"/SECTEUR_105/"}
    #[...]
     
    for i in ????: print i['page']
    Je ne sais pas quoi mettre à la place des ???, si je mets "NATIONAL+TAB_R+TAB_S" j'ai logiquement une erreur de syntaxe, si je mets "NATIONAL,TAB_R,TAB_S" il le prend comme une liste et ne me retourne donc que les indices de dictionnaires dans ma variable i, donc pas bon.

    Merci d'avance
    Loko

  2. #2
    Membre habitué
    Avatar de Zorro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 130
    Points
    130
    Par défaut
    Salut
    la solution est de cree une list de tous vos dictionnaire comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my_list = [TAB_S,NATIONAL]
    for i in my_list:
       pint i['page']
    Coure-moi après que je t’attrape.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut
    ca ne colle pas. En fait j'ai fais une petite erreur dans mon code. Le parcours d'UN dictionnaire se fait comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in TAB_R: 
        print TAB_R[i]['page']
    Si je fais votre solution [NATIONAL, TAB_R, TAB_S], à l'intérieur de ma boucle je ne sais pas de quel tableau l'indice i en cours est issu, et i['page'] n'existe pas, donc ??

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my_list = [TAB_S,NATIONAL]
    for i in my_list:
       for p in i.values():
           print p['page']
    @++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut
    C'est tout a fait cela.

    Merci beaucoup !

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

Discussions similaires

  1. [LinqToObjects] Somme de plusieurs dictionnaires
    Par Martouff dans le forum Linq
    Réponses: 2
    Dernier message: 11/09/2009, 15h58
  2. Fonction union sur plusieurs vecteurs
    Par neptune2024 dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/06/2009, 11h02
  3. [Avis] Vue avec union sur plusieurs tables
    Par adiGuba dans le forum Langage SQL
    Réponses: 0
    Dernier message: 22/09/2008, 11h50
  4. Union de plusieurs figures
    Par smyley dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 07/06/2008, 07h57
  5. Réponses: 10
    Dernier message: 20/02/2008, 10h30

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