为什么Python 2.6没有集合字面量、集合推导式或字典推导式?

14

Python 2.6基本上是为了使转换到Python 3更容易而存在的一个过渡版本。如果新特性不破坏语法和类库的向后兼容性,那么许多目标定在Python 3上的特性都会在2.6中实现。

为什么集合字面值 ({1, 2, 3})、集合推导式 ({v for v in l}) 或者字典推导式 ({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 - mbauman
2个回答

19

1
你的回答比我的更简洁和有帮助 :) - tzot

10
所有这些都是语法/语法变化。这些变化通常首先在带有 from __future__ import ... 语句的 Python x.y 版本中引入,并至少在 Python x.(y+1) 版本中实现。目前还没有针对这些更改的过渡。
从技术上讲,我已经回答了你的“为什么”。
现在,如果你的意思是,“为什么没有人花时间建议、支持并实现一些我也想在2.x中拥有的东西,即使他们不知道它,因为我从未尝试在 comp.lang.python 或 Python-Dev 中建议/支持将这些语法增强向后移植,甚至我从未尝试阅读 PEPs?”,那么答案也在你身上,你可以自己提供一个答案。
顺便说一下,你不应该使用 dict([(k,v) for k,v in d]) 形式,而应该使用 dict((k,v) for k,v in d)。这样更有效率。为什么要创建一个中间列表呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接