2009-10-23 18 views

回答

10

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

所以,你可以使用组早在2.3,只要你

import sets 

但是,如果你尝试导入你会得到一个DeprecationWarning在2.6

集解析,并设置文字语法 - 也就是说,能够说

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

+0

再一次,这并不回答这个问题,但这是我的不清楚 – Casebash 2009-10-23 06:19:40

+0

带括号的特殊集合理解语法是Python 3.0的新增功能,但您可以在2.5和更高版本中执行集合理解更详细的(和丑陋的)'set([i for i in])' – 2009-10-23 06:26:16

+0

它被列为Python 3.0中的一个新特性。 http://docs.python.org/dev/3.0/whatsnew/3.0.html。它不能在Python 2.6中完成 – Casebash 2009-10-23 06:27:27

0

好,测试它:

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

我跑2.5,所以我会假设这句法是有时在2.6增加(更新:实际上添加了3.0,但伊恩打败了我)。我应该很快就会升级。我很高兴他们为它添加了语法 - 我很厌倦set([1, 2, 3])

自集合首次创建以来,集合解析可能已经存在。 Python文档网站不是很清楚,但我不会想象集合在没有迭代器的情况下会非常有用。

+0

我想我在问题上还不够清楚。这是当集合被添加并设置操作符时。不要低估这个答案 – Casebash 2009-10-23 06:13:06

0

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

相关问题