1.什么是集合
(1)数学上,把set称作不同元素组成的集合,集合(set)的成员通常被称作集合元素
(2)集合对象是一组无序排列的可哈希的值,不可变的才是可哈希的,列表可变,所以里边没有列表
(3)集合有两种类型,可变集合set和不可变集合frozenset
>>> set("hellllo") //可变的
set(['h', 'e', 'l', 'o'])
>>> frozenset("hellllo") //不可变的
frozenset(['h', 'e', 'l', 'o'])
>>> set(["i","love","you"]) //列表中每个单词是一个元素
set(['i', 'you', 'love']) //这不是元组里边有个列表,而是集合的表示方式
2.集合类型操作符
(1)集合支持用in和not in操作符检查成员
(2)能够通过len()检查集合大小
(3)能够使用for迭代集合成员
(4)不能取切片,没有键
>>> s1 = set("lovvvve")
>>> s1
set(['e', 'l', 'o', 'v'])
>>> "l" in s1
True
>>> "y" in s1
False
>>> len(s1)
4
3.集合类型操作符
|:联合,取并集
&:交集
-:差补
>>> s1 = set("abc") //给s1赋值
>>> s2 = set("bcd") //给s2赋值
>>> s1 & s2 //取交集
set(['c', 'b'])
>>> s1 | s2 //取并集
set(['a', 'c', 'b', 'd'])
>>> s1 - s2 //取差补
set(['a'])
4.集合的内建方法
(1)add()方法
>>> s1
set(['e', 'l', 'o', 'v'])
>>> s1.add("love") //add添加字符串,把字符串当一个整体写进去
>>> s1
set(['love', 'e', 'l', 'o', 'v'])
(2)update()方法
>>> s1.update("me") //update添加字符串,把字符串拆开写进去
>>> s1
set(['love', 'm', 'l', 'o', 'v', 'e'])
>>> s1.update(("haha","xixi")) //update添加元组,元组中的元素整体添加进去
>>> s1
set(['love', 'haha', 'm', 'l', 'o', 'v', 'e', 'xixi'])
(3)remove()方法
>>> s1.remove("haha") //移除haha这个元素
>>> s1
set(['love', 'm', 'l', 'o', 'v', 'e', 'xixi'])
(4)issubset()方法、issuperset()方法、union()方法、
>>> s1 = set("abc")
>>> s2 = set("abcd")
>>> s1.issubset(s2) //s1是否是s2的子集
True
>>> s2.issuperset(s1) //s2是否是s1的超集
True
>>> s1.union(s2) //包含s1和s2的集合
set(['a', 'c', 'b', 'd']
(5)isintersection()方法、isdifference()方法、
>>> s1 = set("abc")
>>> s2 = set("abcd")
>>> s1.intersection(s2) //s1与s2的交集
set(['a', 'c', 'b'])
>>> s1
set(['a', 'c', 'b'])
>>> s2
set(['a', 'c', 'b', 'd'])
>>> s1.intersection(s2)
set(['a', 'c', 'b'])
>>> s1.difference(s2) //s1与s2的差补,s1里边有,s2里边没有的
set([])
转载于:https://blog.51cto.com/zhangdl/1831789