Por que não Python 2.6 criaram literais e compreensões ou compreensões de dicionários? [fechadas]
-
19-08-2019 - |
Pergunta
Python 2.6 foi basicamente um trampolim para fazer a conversão para Python 3 mais fácil. Um monte de recursos destinados para Python 3 foram implementadas em 2,6 se não quebrar a compatibilidade com a sintaxe e as bibliotecas de classe.
Por que não foram definidas literais ({1, 2, 3}
), compreensões set ({v for v in l}
), ou compreensões dict ({k: v for k, v in d}
) entre elas? Em particular compreensões dict teria sido um grande benefício ... Eu me encontrar com o consideravelmente mais feio dict([(k, v) for k, v in d])
uma enorme quantidade recentemente.
Existe algo óbvio que estou em falta, ou foi apenas um recurso que não fazer o corte?
Solução
Não foi feito porque ninguém teve tempo para fazê-lo. Há erros abertos durante meses, e ninguém comentou sobre eles:
Por isso, foi o suficiente não é importante para ninguém cuidado, provavelmente.
Outras dicas
Todos estes são mudanças sintaxe / gramática. Tais mudanças são tradicionalmente introduzido pela primeira vez em uma versão X.Y Python com uma declaração from __future__ import …
, e implementado, pelo menos em Python x. (+ 1 y) versão. Essa transição ainda não aconteceu para estas mudanças.
Tecnicamente, eu respondi o seu "porquê".
Agora, se você quis dizer, “por que ninguém tome o tempo para sugerir, apoiar e implementar algo que I gostaria de ter em 2.x também, mesmo que que não sei sobre ele desde I nunca tentei sugerir / suporte backporting essas melhorias de sintaxe em qualquer comp.lang.python ou Python-Dev e I não tentaram até mesmo ler os PEPs?”, em seguida, as mentiras resposta em você também, e você pode oferecer uma resposta a si mesmo.
HTH
BTW, você não deve usar a forma dict([(k,v) for k,v in d])
, mas o dict((k,v) for k,v in d)
. Mais eficiente. Por que criar uma lista intermediária?