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

GUI Python Discussion :

aide pour liste de dictionnaire en python


Sujet :

GUI Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut aide pour liste de dictionnaire en python
    Bonjour, tout d'abord j’espère que je suis dans la bonne catégorie pour exposer mon problème, je cherche à créer une fonction C qui prend en paramètre un texte et qui me donne une liste de dictionnaires.
    J'ai 2 objets qui eux proviennent de 2 autres fonctions A et B:elles me donnent 2 listes, liste A(de la fonction A) et liste B(fonction B), je ferais appelle à A et B dans la C. Le but de la fonction C est d'ajouter les éléments de la liste A en tant que valeur de la première clé de mon dictionnaire et les éléments de la liste B en tant que valeur de la deuxième clé de ce même dictionnaire mais j'ai besoin d'avoir autant de dictionnaires que j'ai d'éléments dans mes listes A et B, donc dico1={(clé 1: 1er élément de ma liste A),(clé 2: 1er élément de la liste B)} et ainsi de suite.

    Pour l'instant je n'ai pas encore fais appel à mes fonctions A et B, j'ai inventer des listes que j'ai mis en paramètre à la place du texte:

    prenom=["euh","elle"]
    nom=["rou","tu"]


    def ajoutAuDico (objet1,objet2,objet3):
    dico={"prenom":"","nom":""}
    listedeDico=[]
    dico["prenom"]=objet1
    dico["nom"]=objet2
    print listedeDico.append(dico)
    return listedeDico

    print ajoutAuDico(prenom,nom,compteur)


    Résultat je n'obtient que un seul dictionnaire alors que j'aimerais obtenir
    deux dictionnaires. Je suis en total manque d'imagination sur ce que je suis censée faire pour qu'il crée un nouveaux dictionnaires pour chaque élément. Comme vous l'avez surement devinez je suis une grande débutante !


    ps: on ne voit pas l'indentation je n'arrive pas à le faire apparaitre mais je l'ai

  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,

    Il faut que tu crées ta liste de dicos dans l'espace global de noms parce que, dans ton code, tu recrées une liste vide à chaque fois que tu appelles ta fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        ...
        listedeDico=[]
        ...
    Cela dit, tu appelles ta fonction en lui donnant directement les listes et non pas les objets de celles-ci, donc tu as ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def ajoutAuDico (objet1,objet2,objet3):
                       |      |      |-> ?
                       |      |-> ["rou","tu"]
                       |-> ["euh","elle"]
     
        dico["prenom"] = objet1 <- ["euh","elle"]
        dico["nom"] = objet2  <- ["rou","tu"]
    Par conséquent, listedeDico == [{"prenom": ["euh","elle"], "nom": ["rou","tu"]}]

    Pour itérer sur plusieures listes en même temps, tu as la fonction zip()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> lst = ['a', 'b', 'c']
    >>> lst_1 = ['rouge', 'vert', 'bleu']
    >>> lst_2 = [1, 2, 3]
    >>> for data in zip(lst, lst_1, lst_2):
    ...     print data
    ... 
    ('a', 'rouge', 1)
    ('b', 'vert', 2)
    ('c', 'bleu', 3)
    Et tu peux passer ceci directement à ta fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    listedeDico=[]
    for data in zip(prenoms, noms):
        listedeDico.append(ajoutAuDico(data))
    Je te laisse réécrire la fonction, mais commence la par un print.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def ajoutAuDico(args):
        print args
    Autre choses:
    - si tu n'as pas de raison d'utiliser Python 2, alors utilise plutôt Python 3
    - Pour poster du code ici, utilise la balise # dans la barre d'outils d'édition.

Discussions similaires

  1. [HTML 5] Aide pour liste
    Par Kalas22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/04/2011, 09h13
  2. aide pour listes chainées
    Par fil de fer dans le forum Débuter
    Réponses: 6
    Dernier message: 27/12/2009, 21h45
  3. [MySQL] Besoin d'aide pour liste déroulante dreamweaver + mysql
    Par dreamover dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2009, 15h56
  4. Aide pour liste déroulante
    Par csseur22 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/11/2008, 11h21
  5. Aide pour listes déroulantes liées
    Par Raiga dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/07/2007, 14h34

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