Liste de dictionnaire python

marinee78 -  
mamiemando Messages postés 33766 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 :)
A voir également:

2 réponses

georges97 Messages postés 13753 Date d'inscription   Statut Contributeur Dernière intervention   2 641
 
0
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
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