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 de listes


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 69
    Points : 25
    Points
    25
    Par défaut Dictionnaire de listes
    Bonjour,

    J'ai une liste comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste=[['1','h'],['12','t'],['26','t'],['1','e'],['26','c'],['18','e'],['1','c'],['12','h']]
    etc

    Je souhaiterais obtenir un dictionnaire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dico={'1':['h','e','c'], '12':['t','h'], '26':['t','c'], '18':['e']}
    Le code que j'ai ne me renvoie pas une liste mais seulement le dernier élément trouvé correspondant à la clé en question.

    Comment faire?


    EDIT :
    je pense qu'il faut procéder ainsi, mais comme j'ai 120 clés différentes, je ne peux pas écrire ces 3 mêmes lignes (qui suivent) pour les 120clés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dico={}
    listebis=[]
    for i in range(len(liste)):
    	if liste[i][0] == '1':
    		listebis.append(liste[i][1])
    		dico[liste[i][0]]=listebis

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Solution proposée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    liste=[['1','h'],['12','t'],['26','t'],['1','e'],['26','c'],['18','e'],['1','c'],['12','h']]
     
    dico={}
    for x,y in liste:
        if x in dico:
            dico[x].append(y)
        else:
            dico[x]=[y]
     
    print dico  # => affiche {'1': ['h', 'e', 'c'], '18': ['e'], '26': ['t', 'c'], '12': ['t', 'h']}
    [la solution donnée à ta dernière question http://www.developpez.net/forums/sho...59&postcount=5 convient-elle?]

    Tyrtamos

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 69
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup pour cette solution, ça marche.

    Et pour mon autre post concernant les occurences de listes, oui j'ai utilisé ton code parce que celui de dividee était certes plus efficace, mais plus compliqué à comprendre, commenter et réexpliquer.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 69
    Points : 25
    Points
    25
    Par défaut

Discussions similaires

  1. probleme concordance dictionnaire et liste
    Par shadow19c dans le forum Général Python
    Réponses: 15
    Dernier message: 24/02/2011, 17h24
  2. Dictionnaire de liste -> liste de dictionnaire
    Par ju_bicycle dans le forum Général Python
    Réponses: 8
    Dernier message: 01/07/2009, 12h43
  3. Encore ce dictionnaire de listes
    Par Victoria007 dans le forum Général Python
    Réponses: 10
    Dernier message: 15/05/2008, 22h39
  4. Dictionnaire et liste de mot
    Par cinette dans le forum Services
    Réponses: 0
    Dernier message: 30/04/2008, 18h47
  5. Problème "for" dans dictionnaire de liste
    Par Sayrus dans le forum Général Python
    Réponses: 3
    Dernier message: 15/02/2006, 16h35

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