标签:python 集合
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([])
本文出自 “庭中有奇树” 博客,请务必保留此出处http://zhangdl.blog.51cto.com/11050780/1831789
标签:python 集合
原文地址:http://zhangdl.blog.51cto.com/11050780/1831789