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 :

dictionnaire à double dimensions python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut dictionnaire à double dimensions python
    Bonjour,

    J'ai un petit soucis avec mon dictionnaire python ... Je souhaiterai faire en sorte que pour une même clé on retrouve une autre clé avec une valeur associée.

    Le dictionnaire que j'ai créer me renvoi ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {'NC_017646_islands.csv': {'PAI 1 Allantion utilization': '5.285714285714286'}}
    {'NC_017646_islands.csv': {'PAI 2 direct heme uptake system': '4.44'}}
    {'NC_017646_islands.csv': {'PAI 3 ipaH': '27.75'}}
    {'NC_045214_islands.csv': {'PAI 1 Fdec' : '20.2'}}
    Or je voudrais avoir quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {'NC_017646_islands.csv': {'PAI 1 Allantion utilization': '5.285714285714286'}, {'PAI 2 direct heme uptake system': '4.44'}, {'PAI 3 ipaH': '27.75'}}
    {'NC_045214_islands.csv': {'PAI 1 Fdec' : '20.2'}}
    Les noms commençant par 'NC_0 sont stocké dans la variable "esp", puis les noms commençant par PAI dans "ID " et ce qui se trouve derrière dans "FV", et enfin le chiffre associée dans la variable "score"

    J'ai vu qu'on pouvait essayer de faire une liste également ...

    Voici mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pprint
    with open("file","r") as f1:
       for line in f1:
          sp = li[0]
          ID = li[4]
          FV = li[9]
          score = li[10]
          score_dict = {sp: {ID + " " + FV: str(score)}}
          pprint.pprint(score_dict)
    Merci d'avance pour ceux qui pencheront sur mon problème

  2. #2
    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,

    La première chose que vous montrez est une suite de dictionnaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {'NC_017646_islands.csv': {'PAI 1 Allantion utilization': '5.285714285714286'}}
    {'NC_017646_islands.csv': {'PAI 2 direct heme uptake system': '4.44'}}
    {'NC_017646_islands.csv': {'PAI 3 ipaH': '27.75'}}
    {'NC_045214_islands.csv': {'PAI 1 Fdec' : '20.2'}}
    et si vous voulez associer à la clef 'NC_017646_islands.csv' une liste de dictionnaires, il suffit de le faire.

    Cà construit une hiérarchie, une arborescence et non une structure à 2 dimensions ni trop ce que vous exprimez via:
    Citation Envoyé par LaraFarron Voir le message
    Je souhaiterai faire en sorte que pour une même clé on retrouve une autre clé avec une valeur associée.
    Il serait plus simple de partir des opérations/recherches que vous voulez réaliser pour avoir une idée de la structure la plus appropriées: dictionnaires et listes peuvent êtres "composés" mais c'est pas en les secouant dans tous les sens que vous allez tomber sur la structure la plus adaptée...

    Pourquoi ne pas fabriquer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    'NC_017646_islands.csv': 
        {
            'PAI 1 Allantion utilization': '5.285714285714286', 
            'PAI 2 direct heme uptake system': '4.44', 
            'PAI 3 ipaH': '27.75'
        },
    'NC_045214_islands.csv': 
        {'PAI 1 Fdec' : '20.2'}
    }
    note: si le nombre de dimensions traduit le nombre de crochets/indices à préciser pour arriver à une feuille (de l'arbre), alors un dictionnaire de dictionnaires a 2 dimensions. Par contre un dictionnaire de listes de dictionnaires en aura 3.

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

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre réponse

    En effet c'est plus judicieux comme ça, j'ai pu régler mon problème en créant une liste en valeur pour chaque clé de mon dictionnaire

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

Discussions similaires

  1. strdup et tableau a double dimension
    Par Anonymouse dans le forum C
    Réponses: 6
    Dernier message: 11/11/2007, 19h00
  2. Dictionnaire français en python
    Par Choupinou dans le forum Général Python
    Réponses: 7
    Dernier message: 28/03/2007, 09h03
  3. Réponses: 6
    Dernier message: 15/12/2006, 19h29
  4. Trois dimension python
    Par Extra-Nitro dans le forum GUI
    Réponses: 2
    Dernier message: 23/06/2006, 20h22
  5. [FLASH MX] Tableau à double dimension
    Par totoche dans le forum Flash
    Réponses: 4
    Dernier message: 11/10/2005, 22h04

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