按我的理解,集合类似于数学中的集合这一概念。
集合有以下几个特性:
1.集合内的元素是无序的,这和列表与元组不同,后两者因为有序,所以可以用切片操作和下标索引。但集合不行。
2.集合只能用工厂方法来生成,函数有两个:set()与frozenset().分别是可变与不可变的集合工厂函数。
a=set("beyond")
b=frozenset("beyond")
3.访问集合中的元素,要先判断集合中存在不存在这个元素,可以用in 与not in 操作符检查。例如:
a=set("beyond")#生成了一个集合
if 'e' in a:
print 'e'
4.更新集合的元素方法
a=set("beyond")
a.add("c")
print a
a.update("hello")
print a
5.删除集合元素或者集合本身
a=set("beyond")
a.remove('b')
print a
del a
6.集合相等与大小的判断
a=set("beyond")
b=frozenset("beoynd")#注意与上面字符串的顺序不一样,但两个集合是相等的
print a==b
而如果两个集合,一个集合的元素全部可以在另一个集合中找得到,那么可以用大于小于号来作判断
a=set("beyond is a band")
b=frozenset("beoynd")#注意与上面字符串的顺序不一样,但两个集合是相等的
print a>b
print a<b
7.集合的数学意义上的操作
a.联合 | ,这个合并操作可以把两个集合中所有的 元素合并在一起。对照现实生活的情景如下:两个班级的学生一起联合举办某 个活动。那所有参加活动的同学就是:a班|b班
a=set("abc")
b=set("def")
c=a|b
print c
b.交集&,即两个集合中都共同拥有的相同的元素。比如两个班级中,有老师同时给这两个班级上课,那这些老师就是这两个班级师生集合的交集部分。
a=set("abc123")
b=set("def123")
c=a&b
print c
结果输出:set([‘1’, ‘3’, ‘2’])
c.差集-
a=set("abc123")
b=set("def123")
c=a-b
print c
8.前面说过集合有可变与不可变这两种类型,如果一个可变集合与一个不可变集合用集合操作,那结果是可变的还是不可变的呢?
答案是看集合操作符左右两边的集合类型,操作结果的类型与左边的集合类型相同。
9.以前我们习惯用+来给某个数据序列添加新的元素,但集合不支持这种操作,如果要添加,不妨用**|**操作符
http://www.scriptsearch.com
- ASP, CFML, C and Cpp, Flash, Java, JavaScript, PHP, Perl, Python, RemotelyHosted, Visual Basic and XML scripts (>10000)