python之集合学习笔记

来源:互联网 发布:橙e付网络 编辑:程序博客网 时间:2024/06/13 23:55

按我的理解,集合类似于数学中的集合这一概念。

集合有以下几个特性:
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 aa.update("hello")print a

5.删除集合元素或者集合本身

a=set("beyond")a.remove('b')print adel a

6.集合相等与大小的判断

a=set("beyond")b=frozenset("beoynd")#注意与上面字符串的顺序不一样,但两个集合是相等的print a==b

而如果两个集合,一个集合的元素全部可以在另一个集合中找得到,那么可以用大于小于号来作判断

a=set("beyond is a band")b=frozenset("beoynd")#注意与上面字符串的顺序不一样,但两个集合是相等的print a>bprint a<b

7.集合的数学意义上的操作
a.联合 | ,这个合并操作可以把两个集合中所有的 元素合并在一起。对照现实生活的情景如下:两个班级的学生一起联合举办某 个活动。那所有参加活动的同学就是:a班|b班

a=set("abc")b=set("def")c=a|bprint c

b.交集&,即两个集合中都共同拥有的相同的元素。比如两个班级中,有老师同时给这两个班级上课,那这些老师就是这两个班级师生集合的交集部分。

a=set("abc123")b=set("def123")c=a&bprint c

结果输出:set([‘1’, ‘3’, ‘2’])
c.差集-

a=set("abc123")b=set("def123")c=a-bprint c

8.前面说过集合有可变与不可变这两种类型,如果一个可变集合与一个不可变集合用集合操作,那结果是可变的还是不可变的呢?
答案是看集合操作符左右两边的集合类型,操作结果的类型与左边的集合类型相同。
9.以前我们习惯用+来给某个数据序列添加新的元素,但集合不支持这种操作,如果要添加,不妨用|操作符

原创粉丝点击