Python set的变化

在Python2.5/2.6之前,我们可以说python插件的数据类型有:
整型、长整型、浮点型、字符串、布尔型、列表和元组、字典、当然还有xrange,None型等等
在Python 3.0中,长整型消失,只有一个整型,可以无限长度(整型的实现跟具体硬件无关了,跟以前的长整型类似),但长整数不再需要L尾巴。
另外一个数据类型就是set,集合。
其实集合这种类型以前就有,只不过初始化和表现有些奇怪:
以前的初始方法是有
s=set(Squence)一种显式的方法,
而输出结果看起来像这样:
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
具体参考http://www.python.org/dev/peps/pep-0218/,里面定义了set的方法和运算符。
此外,Python还提供了sets模块,里面定义了Set和ImmutableSet两种实现。
无论如何,看起来,以前的set更像个函数而不是内置的数据结构:-
在Python 3.x中,这个改变是非常明显的,sets模块消失,set()内建函数消失。
而正确的创建一个集合的语法变成了:
s={1,2,3},用花括弧的方法。
s={(1,2,3)},只会构造包含一个元素(该元素为元组)的集合。
现在看起来集合在Python中,更像是跟list/turple/dict一致的内建数据类型,而这个语法,也是PEP 218最初的建议。
list用方括号
turple用小括号
dict用花括号。
现在set用的也是花括号了。
这个变化,应该算是Python 3.0比较大的语法变化之一。