在什么版本的Python中设置了初始化语法

时间:2009-10-23 06:07:10

标签: python

我今天才注意到这个功能!

s={1,2,3} #Set initialisation
t={x for x in s if x!=3} #Set comprehension
t=={1,2}

它是什么版本的?我也注意到它已经设定了理解力。这是在同一版本中添加的吗?

资源

3 个答案:

答案 0 :(得分:11)

在Python 2.3中添加了sets模块,但内置的集合类型已添加到2.4中的语言,基本上具有相同的接口。 (从2.6开始,sets模块已被弃用。)

所以你可以使用早在2.3的集合,只要你

import sets

但如果您在2.6

中尝试导入,则会获得DeprecationWarning

设置理解和设置的文字语法 - 也就是说,能够说

a = { 1, 2, 3 }

是Python 3.0中的新功能。非常具体,Python 3.0a1(Python 3.0的第一个公开发行版)从2007年开始提供了集合文字和集合理解。Python 3 release notes

后来在2.7中实现了理解和文字。 3.x Python features incorporated into 2.7

答案 1 :(得分:0)

好吧,测试一下:

>>> s = {1, 2, 3}
  File "<stdin>", line 1
    s = {1, 2, 3}
          ^
SyntaxError: invalid syntax

我正在运行2.5,所以我认为这个语法是在2.6中添加的(更新:实际上在3.0中添加了,但Ian打败了我)。我应该很快升级一段时间。我很高兴他们为它添加了一个语法 - 我对set([1, 2, 3])感到厌倦。

自首次创建集合以来,设置理解可能已经存在。 Python文档站点不是很清楚,但我不认为没有迭代器,集合会太有用。

答案 2 :(得分:0)

大约2-3天前,set literal和set和dict理解语法被移植到2.x trunk。所以我想这个功能应该可以从python 2.7获得。