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 :

Accéder aux éléments d'un dictionnaire d'une façon spécifique et reproductible


Sujet :

Python

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut Accéder aux éléments d'un dictionnaire d'une façon spécifique et reproductible
    Bonjour tout le monde !

    Dans un script python, je récupère une liste de dictionnaire.

    J'ai un template pour une page HTML, dans lequel j'affiche un tableau.

    Pour la 1ière ligne de ce tableau HTML, les colonnes correspondent aux clés de mes dictionnaires (identiques pour chaque dico).
    Pour les lignes suivantes, les colonnes correspondent aux valeurs des dicos pour la clé affiché au dessus ...

    Le problème et qu'en bouclant sur un dictionnaire, on ne peut savoir l'ordre des clés ...

    J'aurais donc besoin d'accéder aux éléments d'un dictionnaire d'une façon spécifique et reproductible

    Je débute avec les dictionnaires ...

    Quelqu'un saurait comment faire ?

    Merci bien

    @+.

  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
    Salut,
    tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> ordre_colonne = ["colonne1", "colonne2", "colonne3"]
    >>> d = {"colonne1":"val1", "colonne3":"val3", "colonne2":"val2"}
    >>> for cle in ordre_colonne:
    ...     print "%s => %s" % (cle, d[cle])
    ...
    colonne1 => val1
    colonne2 => val2
    colonne3 => val3
    ou tu passes par une liste de tuple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> l = [(cle, d[cle]) for cle in ordre_colonne]
    >>> for item in l:
    ...  print "%s => %s" % (item[0], item[1])
    ...
    colonne1 => val1
    colonne2 => val2
    colonne3 => val3

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 223
    Points : 58
    Points
    58
    Par défaut
    tout simplement

    moi je cherchais à faire un truc sur le dico, mais apparemment on peut pas ...

    merki l'ami !

    @+.

  4. #4
    Membre averti Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    Trier sur les keys me semble assez simple. Dans votre programme qui ne trie pas, vous devez avoir à un moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for cle in dico:
        faire_quelque_chose
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [truc for x in dico if cond]
    Il suffit de remplacer par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for cle in sorted(dico.keys()):
        faire_quelque_chose
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [truc for x in sorted(dico.keys()) if cond]
    Bonne journée

  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
    schnito veut ordonner son dictionnaire comme bon lui semble, c-a-d sans forcement suivre l'ordre de tri des cles.

  6. #6
    Membre averti Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Points : 390
    Points
    390
    Par défaut
    Citation Envoyé par pacificator
    schnito veut ordonner son dictionnaire comme bon lui semble, c-a-d sans forcement suivre l'ordre de tri des cles.
    Si les paramètres de sorted (reverse, et les fonctions cmp et key) ne suffisent pas, je ne vois pas trop le sens de la question. Comme le programme ne peut alors pas deviner l'ordre que le programmeur a en tête, ce dernier doit fournir une liste ordonnée qu'il suffit de parcourir.
    J'ajoute que dans la question il semble que le problème soit lié au fait qu'il s'agisse de dictionnaires.

    Pierre

  7. #7
    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
    ce dernier doit fournir une liste ordonnée qu'il suffit de parcourir.
    C'est tout à fait ça, c'est pour ça que j'ai proposé un bout de code et que le sujet est

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

Discussions similaires

  1. [Toutes versions] Accéder aux éléments d'une plage nommée dans une formule
    Par TOM3110 dans le forum Excel
    Réponses: 1
    Dernier message: 13/05/2009, 11h53
  2. Accéder aux éléments XAML à partir d'une autre classe
    Par Keitboor dans le forum Silverlight
    Réponses: 4
    Dernier message: 24/02/2009, 14h02
  3. comment accéder aux éléments d'une liste
    Par RouRa22 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/05/2008, 13h53
  4. Réponses: 11
    Dernier message: 15/06/2007, 17h43
  5. Réponses: 7
    Dernier message: 30/03/2006, 10h04

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