1590 votes

Python : créer un dictionnaire avec compréhension de liste

J’aime la syntaxe python liste.

Peut-il être utilisé pour créer des dictionnaires de trop ? Par exemple, en effectuant une itération sur des paires de clés et de valeurs :

2339voto

fortran Points 26495

En Python 2.6 et plus tôt, le dict constructeur peut recevoir un objet iterable de paires clé/valeur:

d = dict((key, value) for (key, value) in iterable)

À partir de Python 2.7 et 3 au-delà, vous pouvez simplement utiliser le dict de compréhension de la syntaxe directement:

d = {key: value for (key, value) in iterable}

Bien sûr, vous pouvez utiliser l'objet iterable en aucune façon que vous voulez (les tuples et les listes de littéraux, générateur de compréhensions, les interprétations de la liste, générateur de fonctions, fonctionnelle composition... sens créatif), à condition que chaque élément est un objet iterable lui-même de deux éléments:

d = {value: foo(value) for value in sequence if bar(value)}

def key_value_gen(k):
   yield chr(k+65)
   yield chr((k+13)%26+65)
d = dict(map(key_value_gen, range(26)))

298voto

SilentGhost Points 79627

en py3k dict silencieuse fonctionne comme ceci :

dans py2k vous pouvez utiliser la suggestion de fortran.

73voto

doukremt Points 1902

En fait, vous n’avez même itérer sur l’itérable si il comprend déjà une sorte de cartographie, le constructeur dict gracieusement le fait pour vous :

9voto

Learner Points 484

Utilisez les compréhensions dict python : Voici le lien pour en savoir plus à ce sujet : Dict silencieuse

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X