Liste de dictionnaire python

marinee78 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai une liste de 8 dictionnaires. Je cherche a créer un nouveau dictionnaire dont les clés sont les valeurs de la première clé de chaque dictionnaires, et dont la valeur associée est le reste des dictionnaire de départ.

Exemple :
[{"a":"1", "b":"2"}, {"a":"3", "b":"4"}] 
devient
{"1":{"b":"2"}, "3":{"b":"4"}}
.

Merci :)

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    À mon avis ce que tu cherches à faire ne tient pas vraiment debout (c'est ce qui me fait douter que c'est un exercice) car :
    • tu peux avoir des collisions au niveau des clés du nouveau dicitionnaire
    • la notion de première clé n'est pas bien définie (est-ce la première paire retournée par
      items()
      , sans tenir compte du fait qu'il n'est pas garanti que tu itères sur les clés par ordre croissant).


    Modulo ces quelques questions, ce que tu cherches ressemble à ça :

    ds = [{"a":"1", "b":"2"}, {"a":"3", "b":"4"}]
    r = dict()
    for d in ds:
        (k, v) = list(d.items())[0]
        r[v] = {
            k_ : v_
            for (k_, v_) in d.items()
            if k != k_
        }
    print(r)


    Bonne chance
    0