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 :

une liste de dictionnaires


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 66
    Par défaut une liste de dictionnaires
    salut a tous
    comment peu ton présenter une liste de 10 dictionnaires es ce que
    1/- par 10 dictionnaires a part
    2/- ou dans un grand dictionnaire
    3/- ou bien bâtir une liste a remplire avec 10 dictionnaire
    en verite je suis perdue et voici l'exercice (livre initiation_python de Raphaël marvie exelent livre pour les debutant
    Le fichier listetu.py contient une liste de 10 dictionnaires. Etudier cette structure de
    donnees et ´ecrire une fonction qui ´ecrit sur la sortie standard (en sautant une ligne entre
    chaque fiche) :
    et merci d'vance

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Il y a effectivement plusieurs solutions, la 1ère est de construire comme vous dites une liste de 10 dictionnaires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> liste = [{} for i in range(10)] # création de dictionnaires vides
    On peut les modifier de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> liste[0][1] = "Ouvrir" # on ajoute à la clé 1 la valeur Ouvrir sur le 1er dictionnaire (indice 0)
    >>> liste
    [{1: 'Ouvrir'}, {}, {}, {}, {}, {}, {}, {}, {}, {}]
    Les autres j'aime moins, celle expliqué ci-dessus exprime bien une liste de 10 objets dictionnaire.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 66
    Par défaut remerciement
    merci bcp pour ta repense

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Par défaut
    Sinon il y a une autre méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste = [{}]*10 #Création d'une liste de 10 dictionnaires
    Méthode peut-être moins facile à comprendre mais qui évite la boucle.

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Pas vraiment. Cela ne fais que multiplier la référence du dico
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> liste = [{}]*10
    >>> liste[0][1] = "Ouvrir"
    >>> liste
    [{1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}, {1: 'Ouvrir'}]

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par Rilea Voir le message
    Sinon il y a une autre méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste = [{}]*10 #Création d'une liste de 10 dictionnaires
    Méthode peut-être moins facile à comprendre mais qui évite la boucle.
    mais qui crée une liste contenant 10 fois le même objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> L = [{}] * 10
    >>> L
    [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}]
    >>> L[0]['a']=1
    >>> L
    [{'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1}, {'a': 1},
     {'a': 1}, {'a': 1}]
    >>>
    Par ailleurs, relisez la question posée par le PO, le sujet est d'afficher la liste non de la construire, çà dit:
    Citation Envoyé par chettane
    Le fichier listetu.py contient une liste de 10 dictionnaires. Etudier cette structure de donnees et ´ecrire une fonction qui ´ecrit sur la sortie standard (en sautant une ligne entre chaque fiche) :
    notez qu'interpréter qu'un "fichier listetu.py contenant une liste de 10 dictionnaires" comme script Python construisant un objet list comprenant 10 objet dict est tellement hasardeux qu'il est impossible de répondre à la question posée sans voir un peu de code...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Exact.

    Pour en finir avec la 'construction'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> liste = [{}] * 10
    >>> id(liste[0])
    3077301492L
    >>> id(liste[1])
    3077301492L
    >>> id(liste[3])
    3077301492L
    >>> liste[0] == liste[1]
    True

  8. #8
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Difficile sans le fichier en question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    3.5 Exercices
    3.5.1 Manipulations de données
    Le fichier listetu.py contient une liste de 10 dictionnaires. Etudier cette structure de don-
    nées et définir une fonction qui écrit chaque fiche sur la sortie standard de la manière suivante
    (en sautant une ligne entre chaque fiche) :
     
    dossier     : 1
    nom         : doe
    prenom      : john
    universite  : lille1
    discipline  : informatique
    niveau      : 4
    moyenne     : 17
    Surtout que c'est un support de cours.
    Ce support propose une initiation au langage Python par l’exemple. Il fait suite à une formation
    d’une semaine et comportant 6 cours. Cette version essaye de compléter les transparents, mais
    ne regroupe malheureusement pas tout le discours accompagnant la présentation des transpa-
    rents. La formation se faisant en salle machine, tous les exemples étaient testés interactivement
    pendant le cours. Cette approche est volontairement conservée ici et il est conseillé d’utiliser
    ce support avec un interpréteur lancé pour «voir ce qui se passe».
    @+

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 66
    Par défaut le sujet veut traite l'affichage
    en premier je remercies tout le monde
    mais je pense que le sujet de l'exercice s’intéresse sur l'affichage des 10 étudiants pour lui la liste des 10 dictionnaires est déjà remplies ,l’écrit est deja fini .et merci bcp

Discussions similaires

  1. Réponses: 27
    Dernier message: 10/04/2014, 17h52
  2. [WD-2010] dictionnaire ajouter une liste de mots
    Par patch2007 dans le forum Word
    Réponses: 2
    Dernier message: 23/12/2013, 09h13
  3. Créer un dictionnaire à partir d'une liste
    Par jouclar dans le forum Général Python
    Réponses: 7
    Dernier message: 25/04/2012, 22h09
  4. Copier un dictionnaire par une list comprehension
    Par Sve@r dans le forum Général Python
    Réponses: 6
    Dernier message: 12/05/2008, 10h25
  5. comment modifier une liste dans un dictionnaire?
    Par Mydriaze dans le forum Général Python
    Réponses: 1
    Dernier message: 06/08/2007, 19h57

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