Python中的集合SET
2014-10-11 00:50
302 查看
Python中的set和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。集合对象支持union(联合),intersection(交),difference(差)和sysmmetric difference(对称差集)等数学运算。
set支持x in set, len(set)和for x in set等操作。作为一个无序的集合,set不记录元素位置或者插入点,因此不支持indexing, slicing等类序列(sequence-like)的操作。
集合最重要的功能之一就是去重,即消除重复元素。列表中的元素是可以重复的,如果希望去除一个列表中的重复元素,只需要把这个列表转换成集合:
set支持x in set, len(set)和for x in set等操作。作为一个无序的集合,set不记录元素位置或者插入点,因此不支持indexing, slicing等类序列(sequence-like)的操作。
集合最重要的功能之一就是去重,即消除重复元素。列表中的元素是可以重复的,如果希望去除一个列表中的重复元素,只需要把这个列表转换成集合:
>>> a = [1,4,9,16,25,36] >>> a.insert(4,4) >>> a [1, 4, 9, 16, 4, 25, 36] >>> b = set(a) >>> b set([1, 36, 9, 16, 25, 4])求两个集合的交集、并集和差集:
>>> c = set([16,25,49,64,81,100]) >>> b set([1, 36, 9, 16, 25, 4]) >>> c set([64, 100, 49, 16, 81, 25]) >>> b.intersection(c) # 交集 set([16, 25]) >>> b & c # 交集 set([16, 25]) >>> b.union(c) # 并集 set([64, 1, 36, 100, 81, 9, 16, 49, 25, 4]) >>> b | c # 并集 set([64, 1, 36, 100, 81, 9, 16, 49, 25, 4]) >>> b.difference(c) # 差集(元素在b中不在c中) set([1, 36, 4, 9]) >>> b - c # 差集(元素在b中不在c中) set([1, 36, 4, 9]) >>> c.difference(b) # 差集(元素在c中不在b中) set([64, 49, 100, 81]) >>> c - b # 差集(元素在c中不在b中) set([64, 49, 100, 81]) >>> b.symmetric_difference(c) # 对称差集(元素不同时出现在两个集合中) set([64, 49, 100, 1, 81, 4, 9, 36]) >>> b ^ c # 对称差集(元素不同时出现在两个集合中) set([64, 49, 100, 1, 81, 4, 9, 36]) >>> b.difference_update(c) # 用只在b中不在c中的元素更新b >>> b set([1, 36, 9, 4]) >>> c set([64, 100, 49, 16, 81, 25])向集合中添加元素:
>>> b set([1, 36, 9, 4]) >>> b.add(16) # 向b中添加元素16 >>> b.add(25) # 向b中添加元素25 >>> b set([1, 36, 9, 16, 25, 4]) >>> b.update(c) # 将c中所有元素(不包括与b中元素重复的)添加到b中 >>> b set([64, 1, 36, 100, 81, 9, 16, 49, 25, 4])包含关系:
True >>> 121 not in c True >>> c.issubset(b) # c是b的子集 True >>> b.issuperset(c) # b是c的超集 True >>> b > c True从集合中删除元素:
>>> b set([64, 1, 36, 100, 81, 9, 16, 49, 25, 4]) >>> b.remove(121) # 用remove删除不属于集合的元素会报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 121 >>> b.discard(121) # 用discard删除不属于集合的元素不会有任何事情发生 >>> b set([64, 1, 36, 100, 81, 9, 16, 49, 25, 4]) >>> b.discard(49) >>> for m in (64, 81, 100): b.discard(m) ... >>> b set([1, 36, 9, 16, 25, 4])
相关文章推荐
- 3.python的set集合的操作示例——《深入python》学习
- Python学习笔记之集合类型(set, frozeset)
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- Python 集合类(set)学习
- Python3.2官方文档教程---Set集合
- Python 中的 集合类型 --- set
- Python入门教程-09 集合set
- Python 集合set
- python之列表(list),元组(tuple),集合(set),字典(dict)
- Python集合(set)类型的操作
- python 从字典里取出内容,创建集合 dict -> set
- set集合运算 分类: python 2013-03-15 10:53 337人阅读 评论(0) 收藏
- python中set集合如何决定是否重复?
- Python中set(集合)的用法
- Python学习笔记--集合set
- Python集合(set)类型的操作
- 集合 (set) 与列表 (list) 分类: python 2013-01-18 15:22 292人阅读 评论(0) 收藏
- python 集合set
- Python集合(set)类型的操作
- Python集合(set)类型的操作