Pourquoi Python 2.6 n'a-t-il pas de littéraux et de compréhensions définis ou de compréhensions de dict? [fermé]
-
19-08-2019 - |
Question
Python 2.6 était fondamentalement un tremplin pour faciliter la conversion en Python 3. Un grand nombre des fonctionnalités destinées à Python 3 ont été implémentées dans la version 2.6 si la compatibilité avec la syntaxe et les bibliothèques de classes n'était pas rétrogradée.
Pourquoi n’a-t-on pas défini de littéraux ( {1, 2, 3}
), de compréhensions de définition ( {v pour v dans l}
) ou de compréhensions de dictée (< code> {k: v pour k, v dans d} ) parmi eux? En particulier, la compréhension de dict aurait été une aubaine ... Je me suis retrouvé à utiliser le dict ([(k, v) pour k, v dans d]) considérablement plus laid
beaucoup dernièrement.
Y at-il quelque chose d’évident qui me manque ou s’agissait-il simplement d’une fonctionnalité qui n’a pas fait la différence?
La solution
Cela n’a pas été fait car personne n’a pris le temps de le faire. Des bogues sont ouverts depuis des mois et personne ne les a commentés:
Donc, ce n'était pas assez important pour que quiconque s'en soucie, probablement.
Autres conseils
Ce sont tous des changements de syntaxe / grammaire. De tels changements sont généralement introduits d’abord dans une version Python x.y avec une instruction à partir de __future__ import & # 8230;
, et sont au moins implémentés dans la version Python x. (Y + 1). Une telle transition n'a pas encore eu lieu pour ces changements.
Techniquement, j'ai répondu à votre "pourquoi".
Maintenant, si vous vouliez dire: "Pourquoi personne n'a-t-il pris le temps de suggérer, de soutenir et de mettre en œuvre quelque chose que je aimerais avoir dans la version 2.x également, même si < em> ils ne le savent pas car I n'a jamais essayé de suggérer / de soutenir le portage de ces améliorations de syntaxe dans comp.lang.python ou Python-Dev et I n’avez jamais essayé de lire les PEP? & # 8221 ;, alors la réponse réside aussi en vous et vous pouvez y répondre vous-même.
HTH
BTW, vous ne devriez pas utiliser la forme dict ([(k, v) pour k, v dans d])
, mais le dict ((k, v) pour k , v en d)
. Plus efficace. Pourquoi créer une liste intermédiaire?