繁体   English   中英

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

[英]In what version of Python was set initialisation syntax added

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

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

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

资源

sets模块是在Python 2.3中添加的,但是内置的set类型被添加到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发行说明

后来在2.7中实现了理解和文字。 3.x Python功能合并到2.7中

好吧,测试一下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM