您的位置:首页 > 编程语言 > Python开发

以写代学: python 集合

2016-07-29 16:25 441 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: