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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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