在哪个版本的Python中添加了初始化语法

2024-04-23 14:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

资源


Tags: in功能版本docsnewforifsets
3条回答

在Python2.3中添加了sets模块,但在2.4中将内置的set类型添加到了语言中,接口基本相同。(从2.6开始,sets模块已被弃用。)

所以你可以使用2.3版本的集合,只要你

import sets

但是如果您在2.6中尝试导入,您将得到一个DeprecationWarning

集合理解,和集合字面语法,也就是说

^{pr2}$

是Python3.0中的新特性。更具体地说,python3.0a1(python3.0的第一个公开发行版)从2007年起就在python3.0a1中提供了set文本和集合理解。Python 3 release notes

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

set literal和set和dict理解语法在2.x trunk中,大约在2-3天前。所以我想Python2.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文档站点不是很清楚,但是如果没有迭代器,集合也不会太有用。在

相关问题 更多 >