Liste de dictionnaire python

Fermé
marinee78 - Modifié le 6 avril 2021 à 15:59
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 6 avril 2021 à 16:08
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

georges97 Messages postés 11842 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 26 avril 2024 2 251
4 avril 2021 à 15:40
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
6 avril 2021 à 16:08
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