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 :

Loop sur une liste de dictionnaires


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    ingénieur
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Par défaut Loop sur une liste de dictionnaires
    bonjour a tous,

    je suis en train de convertir un programme python en java.
    je ne comprends pas une ligne qui itere sur une liste de dictionnaire , voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    self.byte_array = bytearray()
    for msg in list_msg:
        self.byte_array.extend(bytearray([int(elem, 16) for key in msg.keys() for elem in msg[key]]))
    en entrée j'ai cette liste de dictionnaires

    Nom : Image collée à 2021-8-5 16-51.png
Affichages : 94
Taille : 40,3 Ko

    byte_array est donc bien un tableau de byte, mais je n'arrive pas à comprendre comment il est construit..

    Merci d'avance pour toute aide

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

    Citation Envoyé par p@radox Voir le message
    byte_array est donc bien un tableau de byte, mais je n'arrive pas à comprendre comment il est construit..
    Avec les listes de chaines de caractères associées aux clefs de chaque dictionnaire.
    Ce qui a été fait en 3 boucles(*): une pour chaque dictionnaire, une pour chaque clefs et une autre pour chaque valeur associée.
    (*) 2 auraient suffit puisqu'on peut accéder directement aux "valeurs" via .values().

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

  3. #3
    Membre averti
    Profil pro
    ingénieur
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Avec les listes de chaines de caractères associées aux clefs de chaque dictionnaire.
    Ce qui a été fait en 3 boucles(*): une pour chaque dictionnaire, une pour chaque clefs et une autre pour chaque valeur associée.
    (*) 2 auraient suffit puisqu'on peut accéder directement aux "valeurs" via .values().

    - W
    salut , merci !
    oui ce code provient d'un code qui n'est pas le mien et ça semble etre mal maitrisé.
    donc oui si j'ai bien compris :
    cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.byte_array.extend(bytearray([int(elem, 16) for key in msg.keys() for elem in msg[key]]))
    concatène, pour chaque clé (dans l'ordre d'insertion des clés) chaque octet de la liste associé .. ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par p@radox Voir le message
    donc oui si j'ai bien compris :
    cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.byte_array.extend(bytearray([int(elem, 16) for key in msg.keys() for elem in msg[key]]))
    concatène, pour chaque clé (dans l'ordre d'insertion des clés) chaque octet de la liste associé .. ?
    voilà... sauf que l'ordre d'insertion des clefs n'est préservé que sur les versions récentes 3.6+ de Python.

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

  5. #5
    Membre averti
    Profil pro
    ingénieur
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    voilà... sauf que l'ordre d'insertion des clefs n'est préservé que sur les versions récentes 3.6+ de Python.

    - W
    merci pour la précision !
    bonne soirée

Discussions similaires

  1. Calcul des percentiles sur une liste de dictionnaires
    Par pol256 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/08/2015, 17h22
  2. Réponses: 1
    Dernier message: 11/03/2013, 10h46
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53

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