python数据结构之集合
2017-08-30 21:25
246 查看
集合set
思维导图:集合的引入:
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(并), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.当要去除列表中的重复元素时,可将他们转换成集合,然后再转化成列表。
集合的定义
集合的创建集合是一个无序不重复元素的集不可变的数据类型一定可哈希;hash()内置函数可以判断某个类型是否可哈希;
s={int | str | tuple | float | long }
必须为不可变数据类型!
列表和字典都是可变的,可变是指改变值时,改变的是id中的值,而不是指向所改变值的id。
集合的函数:
集合的关系测试
s.intersection(s1[,..]) ##交集,不改变s(s & s1 & …..)
s.intersection_update(s1[,..]) ##交集,改变s
s.union(s1[,…]) ##并集,不改变s
(s | s1 | ….)
s.difference(s1[,..]) ##差集,不改变s
(s-s1)
s.difference_update(s1[,..]) ##差集,改变s
s.symmetric_difference(s1) ##对等差分,两个差集的并
(s ^ s1)
s.symmetric_difference_update(s1) ##对等差分,改变s
s.isdisjoint(s1) ##s和s1是否没有交集,有,返回False,无,返回True
s.issubset(s1) ##s是否为s1的子集,返回bool
s.issuperset(s1) ##s是否为s1的父集,返回bool
s1 = {1, 2, 3} s2 = {2, 3, 4} s3 = {1, 2} s4 = {5} print "s1,s2,s3的交集:", s1.intersection(s2, s3) print "s1,s2,s3的交集:", s1 & s2 & s3 print "s1,s2,s3的并集:", s1.union(s2, s3) print "s1,s2,s3的并集:", s1 | s2 | s3 print "s1-s2的差集:", s1.difference(s2) print "s1-s2的差集:", s1 - s2 print "s1-s2-s3的差集:", s1.difference(s2, s3) print "s1-s2-s3的差集:", s1 - s2 - s3 print "s2-s1的差集:", s2.difference(s1) print "s1和s2的对等差分:", s1.symmetric_difference(s2) print "s1和s2的对等差分:", s1 ^ s2 print "s2和s1的对等差分:", s2.symmetric_difference(s1) # s.isdisjoint(s2) 如果有交集,返回False;否则,返回True; print "s1和s4是否没有交集:", s1.isdisjoint(s4) print "s3是否为s1的子集:", s3.issubset(s1) print "s1是否为s3的父集:", s1.issuperset(s3)
集合的增删改查:
len(s) # set 的长度x in s # 测试 x 是否是 s 的成员
增加:
s.add(1) ##添加元素1至s(1个元素)
s.update(s1) ##将集合|列表|元组s1元素添加至s
删除:
s.remove(1), # 删除存在的元素1,如果不存在,直接报错;
s.discard(1) # 删除存在的元素1,如果不存在,do nothing;
s.pop(), # 随即删除集合元素,不加任何参数;
复制: s1 = s.copy() #s和s1的id不同
清空: s.clear()
删除:del(s)
冻集(frozenset)
冻住的集合,不能增删改;frozenset(set)
set(frozenset)
相关文章推荐
- 【Python】10、python内置数据结构之集合
- python 数据结构-集合set
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- Python数据结构之集合Set
- Python学习笔记-数据结构之集合
- python 数据结构六 之 字典与集合
- python基础知识——内置数据结构(集合)
- python 数据结构 顺序表
- Python dict dictionaries Python 数据结构——字典
- 如何处理集合里的数据 Python
- [置顶] Python开发系列课程(8) - 字符串和常用数据结构
- Python3之数据类型集合
- python入门(二):数据类型和结构
- 数据结构是一种用于实现集合的基本编程结构
- 【Python】数据类型转换相关函数大集合
- Hadoop之使用python实现数据集合间join操作
- Python——基本数据结构
- Python之numpy教程(五):筛选、排序、集合函数、读取存入数据
- [数据结构与算法]排序算法(Python)
- Python -- 如何在列表,字典,集合中筛选数据?