目录
一、什么是集合
二、集合的创建
三、集合的判断、增、删、改操作
1、判断
2、增加
3、删除
(1)remove函数
(2)discard函数
(3)pop函数
(4)clear函数
四、集合间的关系
1、是否相等
2、一个集合是否是另一个集合的子集
3、一个集合是否是另一个集合的超集
4、两个集合是否没有交集
五、集合的数学操作
1、交集计算
2、并集计算
3、差集计算
4、对称差集计算
六、集合的生成式
七、列表字典、元组和集合的总结
第七章总结
一、什么是集合
集合是Python语言提供的内置数据结构,与列表字典都属于可变类型结构,集合是没有value的字典,它只有键。
集合也需要进过哈希函数,因此第一个输入到集合中的数据未必就存在了第一个位置。
二、集合的创建
可以使用大括号直接创建,是“单身贵族”。
或者使用内置函数set()
使用大括号定义集合:
上面示例说明集合中不能有重复的元素,否则只输出重复元素的一个。注意使用大括号定义集合时,只有值没有键,有键就是字典了。
使用set定义集合:
从代码里可见set里面的元素形式可以是多种多样的。并且他们都有一个共同点那就是无序和不能有重复元素。a是使用range函数代替集合中的元素;b是令元组作为集合的输入元素;c是将字符串转化成了集合;d是将集合转化成了集合。
定义空集合时需要注意:不能直接用大括号定义空集合,因为空字典也是这样定义的,所以定义空集合只有一种方法,那就是使用set函数。
三、集合的判断、增、删、改操作
1、判断
2、增加
集合增加元素有两种方式,第一种是使用add函数,add函数只能给集合中增加一个元素;另一种方法是使用update函数,update函数里面可以是集合,可以是元组还可以是列表,update是可以为集合增加多个元素的(至少添加一个元素)。
3、删除
(1)remove函数
使用remove函数可以一次删除一个指定的元素,但如果指定元素不存在集合中的话会报错。
(2)discard函数
discard函数的作用也是删除一个元素,但是如果指定元素不存在的话它不会报错,它会仍然输出原集合。这是和remove函数不同的地方。
(3)pop函数
pop函数是删除集合中的任意一个元素,注意它是不能带参数的,如果给里面写上参数了的话它会报错。
(4)clear函数
clear函数是清空集合
四、集合间的关系
1、是否相等
我们可以看到,当两个集合中的内容一样但数据不一样时,判断相等的结果是true这就说明了集合的无顺序的特点。
2、一个集合是否是另一个集合的子集
如图所示B是A的子集。判断是否是子集可以调用issubset进行判断。
3、一个集合是否是另一个集合的超集
如图所示A是B的超集。使用issupperset函数判断两个集合是否互为超集。
4、两个集合是否没有交集
使用isdisjoint函数判断是否有没有交集时,没有交集的时候返回true反之返回false。
五、集合的数学操作
下面我们将研究如何使用集合完成下面的操作:
1、交集计算
我们能看到,计算交集有两种方法,一种是使用intersection函数,另一种是使用“&”符号,注意在C语言里,&符号是并且的作用,但是在python里这个符号是求交集的作用。
2、并集计算
我们能看到,计算交集也有两种方法,一种是使用union函数,另一种是使用“|”符号,注意在C语言里,|符号是或者的作用,但是在python里这个符号是求并集的作用。
求完并集和交集后我们发现原集合并没有发生改变,这就意味着求得的并集和交集是存到了新的地址。
3、差集计算
我们能看到,计算差集也有两种方法,一种是使用difference函数,另一种是使用“-”符号.
4、对称差集计算
我们能看到,计算差集也有两种方法,一种是使用symmetric_difference函数,另一种是使用“^”符号.
求完差集和对称差集后我们仍然发现原集合并没有发生改变,这就意味着求得的差集和对称差集也是存到了新的地址。
六、集合的生成式
元组是不可变序列,因此它没有生成式。
集合生成式其实比较简单,我们只需将列表生成式的[]改为{}即可。
上面是列表生成式,下面是集合生成式,又再次印证了集合的元素顺序确实是杂乱无章的道理。



