Liste de dictionnaire python

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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