set集合运算 分类: python 2013-03-15 10:53 337人阅读 评论(0) 收藏
2013-03-15 10:53
549 查看
浅谈Python集合运算
Python提供了多种适用于集合的运算。由于集合是容器,因此内置的len函数可以将一个集合作为其单个参数,并返回该集合对象中项目的数量。集合是可迭代的,因此Python开发者可以将其传递给包含一个可迭代参数的任何函数或方法。在这种情况下,集合中的项目是按照某些任意顺序进行迭代的。例如,对于任意集合S,min(S)将返回S中的最小项目。集合成员
k in S运算符可以检查对象k是否是集合S中的一个项目。如果是,则返回True,如果不是,则返回False。与此类似,k not in S相当于not
(k in S)
集合方法
集合对象提供了如下表所示的一些方法。非变异方法将返回一个结果,并且不改变其应用的对象,还可以对类型为frozenset的实例调用该方法,而变异方法可能会改变其应用的对象,并且只能对类型为set的实例调用该方法。在下表中,S和S1表示任何集合对象,x表示任何可哈希的对象。
方法 | 说明 |
非变异方法 | |
S.copy( ) | 返回集合的一个简化副本〔该副本中的项目是集合S中的相同对象,但不是完全的副本) |
S.difference(S1) | 返回在集合S中,但是不在集合S1中的所有项目组成的集合 |
S.intersection(S1) | 返回在集合S中,同时也集合S1中的所有项目组成的集合 |
S.issubset(S1) | 如果集合S中的所有项目也都在集合S1中,则返回True,否则返回False |
S.issuperset(S1) | 如果集合S1中的所有项目也都在集合S中,则返True,否则返同False(S1.issubset(S)类似) |
S.symmetric_difference(S1) | 返回在集合S或S1中,但是不同时在两个集合中的所有项目组成的集合 |
S.union(S1) | 返回在集合S、S1或同时在这两个集合中的所有项目组成的集合 |
变异方法 | |
S.add(x) | 将x添加为集合S中的一个项目;如果x已经是集合S中的一个项目,则不对集合进行任何操作 |
S.clear( ) | 从集合S中删除所有项目,使得S为空自集合 |
S.discard(x) | 删除集合S中的项目x;如果x并不是集合S中的一个项目,则不对集合进行任何操作 |
S.pop( ) | 删除并返回集合S中的任意一个项目 |
S.remove(x) | 删除集合S中的项目x;如果 x不是集合S中的项目,引发一个KeyError异常 |
pop方法可以用于对集合进行破坏性的迭代,并且几乎不消耗额外内存。当Python开发者想要的是在执行循环操作的同时“消耗掉”集合(减少集合中的项目)的话,内存的节省使得pop可以用来对巨大的集合执行循环操作。
集合还包含名为difference_update, intersection_update, symmetric_difference_update,和 update (对应于非变异方法union)的变异方法。这些变异方法都可以执行与对应的非变异方法相同的操作,但是这些方法要在原地执行操作、改变所调用的集合,并返回None。这4个非变异方法也可以使用运算符语法进行访问:分别是S-S1,
S&S1, S^S1, 和 S|S1,对应的变异方法也可以使用增量赋值语法进行访问:分别是S-=S1, S&=S1, S^=S1,
和S|=S1。在使用运算符或增量赋值语法时,两个操作数都必须是集合或者固定集合(frozenset)。不过,在调用命名方法时,参数S1可以是由可哈希的项目组成的任意迭代,并且其语义就像传递的参数为set(S1)一样。
相关文章推荐
- 集合 (set) 与列表 (list) 分类: python 2013-01-18 15:22 292人阅读 评论(0) 收藏
- python备份文件 分类: python 2013-03-15 12:00 365人阅读 评论(0) 收藏
- 使用set()求出列表交集 分类: python基础学习 2013-06-16 17:00 241人阅读 评论(0) 收藏
- lambda表达式使用方法详解 分类: python 2013-03-15 10:58 396人阅读 评论(0) 收藏
- python备份文件2 分类: python 2013-03-15 15:16 233人阅读 评论(0) 收藏
- 标准输出stdout、标准错误stderr 分类: python python基础学习 2013-06-17 18:08 308人阅读 评论(0) 收藏
- try---except注意事项 分类: python异常 2013-09-06 18:10 386人阅读 评论(0) 收藏
- 猜数字 分类: python 小练习 python基础学习 2013-06-20 15:16 160人阅读 评论(0) 收藏
- fileinput模块获取文件的总行数 分类: python 小练习 python Module 2013-12-04 18:19 304人阅读 评论(0) 收藏
- 先执行linux的clear清屏命令,再执行其他操作 分类: python 小练习 2013-09-13 11:23 441人阅读 评论(0) 收藏
- MySQL问题解决:-bash:mysql:command not found 分类: ubuntu 问题总结 python基础学习 software database 2014-01-22 16:00 3088人阅读 评论(1) 收藏
- Python 设置系统默认编码 分类: python基础学习 2013-12-11 10:04 212人阅读 评论(0) 收藏
- 公共方法、私有方法的解释 分类: python 2013-01-21 16:43 272人阅读 评论(0) 收藏
- 生成二维码报错:IOError: encoder zip not available 分类: python学习 2015-05-06 19:43 107人阅读 评论(0) 收藏
- #小练习 输出两个数的最大公约数 分类: python 小练习 2013-11-08 11:16 385人阅读 评论(0) 收藏
- #小练习 使用字典保存HTMLParser解析的数据 分类: python 小练习 HTMLParser 2013-11-08 20:51 574人阅读 评论(0) 收藏
- #小练习 os.remove() 删除目录文件 分类: python 小练习 2013-05-21 15:49 2774人阅读 评论(0) 收藏
- 使用正则表达式替换文件内容 分类: python 小练习 2013-08-13 15:07 332人阅读 评论(0) 收藏
- 使用os.walk()方法 分类: python 小练习 2013-08-14 10:52 1465人阅读 评论(0) 收藏
- setTimeout()与setInterval() 分类: 网页编程【html、js】 2009-12-07 00:37 337人阅读 评论(0) 收藏