博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记(八)—集合的学习
阅读量:6973 次
发布时间:2019-06-27

本文共 2634 字,大约阅读时间需要 8 分钟。

集合(set)是一个无序不重复元素的序列。

基本功能是进行成员关系测试和删除重复元素。

1、集合的作用

  • 它可以把一个列表中重复的数据去掉,而不需要你再写判断
  • 可以做关系测试,比如说有两个科目,一个数学,一个是化学,想找出来既学习了数学又学习了化学的同学,就可以用集合

2、集合的定义:

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}或者set(value)
View Code

 实例:

>>> set_one = {1,2,3,4,5,6}>>> type(set_one)
>>> set_two = set([1,2,3,4])>>> type(set_two)
>>> print set_oneset([1, 2, 3, 4, 5, 6])>>> print set_twoset([1, 2, 3, 4])>>>
View Code

3、集合的添加

添加集合有两种方式,一种是通过add方法添加,另外一种就是通过updata方法加入;

集合add方法:是把要传入的元素做为一个整个添加到集合中,例如:

>>> a = set("boy")>>> aset(['y', 'b', 'o'])>>> a.add("girl")>>> aset(['y', 'girl', 'b', 'o'])>>>
View Code

集合updata方法:是把要传入的元素拆分,做为个体传入到集合中,例如:

>>> a = set("boy")>>> aset(['y', 'b', 'o'])>>> a.update("girl")>>> aset(['b', 'g', 'i', 'l', 'o', 'r', 'y'])>>>
View Code

4、集合的删除

集合删除操作方法:

remove:删除元素,如果元素不存在会报错

>>> aset(['b', 'g', 'i', 'l', 'o', 'r', 'y'])>>> a.remove('y')>>> aset(['b', 'g', 'i', 'l', 'o', 'r'])>>>
View Code

集合删除操作方法:

pop:删除一个随机的元素,并返回删除的元素

>>> a = {1,2,3,4,5}>>> aset([1, 2, 3, 4, 5])>>> a.pop()1>>> aset([2, 3, 4, 5])>>>
View Code

集合删除操作方法:

discard:如果删除的元素存在,删除,不存在不做处理

>>> a = {1,2,3,4,5}>>> aset([1, 2, 3, 4, 5])>>> a.discard(4)>>> aset([1, 2, 3, 5])>>> a.discard(6)>>> aset([1, 2, 3, 5])>>>
View Code

5、集合运算

取差集:在list中存在,在list2中没有的

>>> list = {1,2,3,4,5}>>> list2 = {4,5,3,6,7}>>> list-list2set([1, 2])>>>
View Code

取交集:就是取list1和list2中都有的

>>> listset([1, 2, 3, 4, 5])>>> list2set([3, 4, 5, 6, 7])>>> list & list2set([3, 4, 5])>>>
View Code

取并集:也就是把list1和list2合并了,然后去除重复的

>>> listset([1, 2, 3, 4, 5])>>> list2set([3, 4, 5, 6, 7])>>> list | list2set([1, 2, 3, 4, 5, 6, 7])>>>
View Code

通过intersection取交集

>>> listset([1, 2, 3, 4, 5])>>> list2set([3, 4, 5, 6, 7])>>> list.intersection(list2)set([3, 4, 5])>>>
View Code

通过union取并集

>>> listset([1, 2, 3, 4, 5])>>> list2set([3, 4, 5, 6, 7])>>> list.union(list2)set([1, 2, 3, 4, 5, 6, 7])>>>
View Code

通过difference取差集

>>> listset([1, 2, 3, 4, 5])>>> list2set([3, 4, 5, 6, 7])>>> list.difference(list2)set([1, 2])>>>
View Code

6、方法的判断

>>> list1 = {1,2,3,4,5,6,9}

>>> list2 = {1,2,3,6,1}
>>> list3 = {1,2,3}

issubset:判断list3是否是list1的子集

>>> #判断list3是否是list1的子集... list3.issubset(list1)True>>>
View Code

issuperset:判断list1是否是list3的父集

>>> #判断list1是否是list3的父集... list1.issuperset(list2)True>>>
View Code

isdisjoint:判断list1和list3是否有交集,有交集返回false,没有交集返回true

>>> #判断list1和list3是否有交集... list1.isdisjoint(list2)False
View Code

symmetric_difference:对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉

>>> list1.symmetric_difference(list2)set([4, 5, 9])
View Code

转载于:https://www.cnblogs.com/beginner-boy/p/8671225.html

你可能感兴趣的文章
关系数据模型的数据结构及约束定义
查看>>
BFS(双向) HDOJ 3085 Nightmare Ⅱ
查看>>
二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换
查看>>
RecycleView的简单使用
查看>>
常用内置函数
查看>>
求空间一点到另外一点(如原点)的距离
查看>>
EditText设置文字改变时的监听
查看>>
Oracle学习笔记安装篇之在Redhat Enterprise Linux 7.0 x86_64下安装Oracle11g R2
查看>>
C++重载赋值运算符
查看>>
NO.7:别让异常逃离析构函数
查看>>
在textarea中鼠标指定的位置插入字符或表情
查看>>
c fopen文件读写
查看>>
(转)UIColor,CGColor,CIColor三者的区别和联系
查看>>
linux基础(5)-用户及权限
查看>>
自己动手写GC
查看>>
hybris 提高订单生成效率
查看>>
通用类整理
查看>>
工作习惯沉淀
查看>>
moment.js
查看>>
安装redis
查看>>