Liste de dictionnaire python

Signaler
-
Messages postés
29703
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 avril 2021
-
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

Messages postés
7048
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
9 avril 2021
1 695
Messages postés
29703
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 avril 2021
7 066
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