2008-12-05 69 views
14

Python 2.6基本上是让转换为Python 3更容易的垫脚石。如果它们没有破坏与语法和类库的向后兼容性,那么注定要用于Python 3的许多功能都在2.6中实现。为什么Python 2.6没有设置文字和理解或字典理解?

其中为什么没有设置文字({1, 2, 3}),设置解析({v for v in l})或者dict解析({k: v for k, v in d})?特别是,词典的理解本来是一个很大的恩惠......我发现自己最近使用了相当丑陋的dict([(k, v) for k, v in d])

有什么明显的我错过了,或者这只是一个功能,没有削减?

+2

请注意,所有这些功能都已在Python 2.7中实现。 http://docs.python.org/dev/whatsnew/2.7.html – 2012-02-10 00:32:01

回答

10

所有这些都是语法/语法变化。传统上,这种更改通常是在带有from __future__ import …语句的Python x.y版本中引入的,并且至少在Python x。(y + 1)版本上实现。这种变化还没有发生。

从技术上讲,我回答了你的“为什么”。现在

,如果你的意思是,“为什么没有人走的时候建议,支持和实施一些想在2.X还,即使他们不知道它从从来没有试图建议/支持在comp.lang.python或Python-Dev和I backporting这些语法增强功能从来没有试图甚至读取PEP?“,那么答案也在于你,你可以自己提供答案。

HTH

顺便说一句,你不应该使用dict([(k,v) for k,v in d])形式,但dict((k,v) for k,v in d)。更高效。为什么创建一个中间列表?