python3.x Day3 集合
python中的集合
集合定义:一个无序的去重的数据集,主要特性就是去重和关系测试,关系测试不改变集合中的数据值
定义集合:set(list) 可以将list转化为集合set
示例:
定义一个集合:list_1
list_1=[1,3,23,53,3]
定义另一个集合:list_2
list_2=[2,3,53,2]
转化为集合:
可以用list_1自身转化,也可以赋值给其他变量,这里就用自身
list_1 = set(list_1)
list_2 = set(list_2)
输出一下转化后的值,可以看到已经去重了(去重特性):
print(list_1,type(list_1))
print(list_2,type(list_2))
#结果:
>>> print(list_1,type(list_1))
{1, 3, 53, 23} <class 'set'> >>> print(list_2,type(list_2))
{2, 3, 53} <class 'set'>
接下来是关系测试:
交集(list_1、list_2都有的数据):可以用set的intersection方法(以下代码)或者运算符 print(list_1 & list_2)
#交集
print(list_1.intersection(list_2))
>>>{3, 53}
判断 没有交集(没有:True、有:False):
#判断 没有交集
print("判断 没有交集,没有返回True")
print(list_1.isdisjoint(list_2)) #有交集,返回false
list_4=set([101,102]) #定义list_4与list_1没有交集
print("list_4:",list_4)
print(list_1.isdisjoint(list_4)) >>>判断 没有交集,没有返回True
>>>False
>>>list_4: {101, 102}
>>>True
并集(list_1、list_2中的数据整合在一起):可以用set的union方法,也可以使用运算符print( list_1 | list_2 )
#并集
print(list_1.union(list_2))
>>>{1, 2, 3, 53, 23}
差集(取数据为:首先在list_1中,list_2中的数据,如果list_1中有,结果集就去掉):可以用set的difference方法,也可以使用运算符print( list_1 - list_2 ) 表示:list_1中包含,list_2不包含
#差集
print(list_1.difference(list_2))
>>>{1, 23}
#反过来也是一样的原理,结果以list_2为准
print(list_2.difference(list_1))
>>>{2}
对称差集(取得两个集合互相都没有的数据):可以使用set对象的symmetric_difference方法,也可以使用运算符 print( list_1 ^ list_2)
#对称差集:取得两个集合中,互相都没有的数据
print("对称差集")
#list_1、list_2
print(list_1,list_2)
#取得对称差集
print(list_1.symmetric_difference(list_2)) >>>{1, 3, 53, 23} {2, 3, 53}
>>>{1, 2, 23}
子集/父集:
#子集/父集 返回值为True、False
print("子集/父集")
print(list_1.issubset(list_2)) #list_1是不是list_2的子集
print(list_1.issuperset(list_2)) #list_1是不是list_2的父集
>>>False
>>>False list_3=set([3,53])
print(list_3.issubset(list_1))#list_3是不是list_1的子集
print(list_1.issuperset(list_3))#list_1是不是list_3的父集
>>>True
>>>True
集合的增伤改查:
#集合的增删改查
print("增加,add方法增加一个,update方法增加多个")
list_1.add(55555)
list_1.update([333,444,666])
print("查询,len()方法查询有多少成员,x in set判断x是否为成员")
print(list_1)
print(len(list_1))
print(666 in list_1,999 in list_1)
print("删除,set的pop方法随机删除一个,返回被删除的值。"
"remove删除指定一个成员,有就删除,没有就异常,"
"discard方法删除指定值,不返回,有就删除,没有就啥都不做")
print("it is {list}".format(list=list_1))
print(list_1.pop())
print("pop():",list_1)
#remove
list_1.remove(333)
#list_1.remove("ddd") ddd不存在,此处会异常
print("remove()",list_1)
#discard
list_1.discard(444)
list_1.discard("ddd")
print(list_1)
python3.x Day3 集合的更多相关文章
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- python3入门之集合set
之前介绍python的数据结构时,没有介绍set(集合)现在在这里稍微介绍下: set原理 Python 还 包 含 了 一 个 数 据 类 型-- set ( 集 合 ) . 集 合 是 一 个 无 ...
- Python3字典与集合
一.Python3字典 字典是另一种可变容器模型,且可存储任意类型对象字典的每个键值(key=>value)对用冒号":"分割,每个键值对之间用逗号"," ...
- [Python3] 015 冰冻集合的内置方法
目录 0. 前言 英文名 元素要求 使用限制 返回 方法数量 1. 如何查看 frozenset() 的内置方法 2. 少废话,上例子 2.1 copy() 2.2 difference() 2.3 ...
- Python3基础 set() 集合 创建集合与特点:自动将重复合并掉 不支持索引
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- python2 => python3 踩坑集合
报错内容: ModuleNotFoundError: No module named 'md5' 解析: 这是 python2 的库,python3 已经把它包含进 hashlib 库里了 解决方法 ...
- python3 set(集合)
add(增加元素) name = set(['Tom','Lucy','Ben']) name.add('Juny') print(name) #输出:{'Lucy', 'Juny', 'Ben', ...
- python3 列表/字典/集合推导式
'''列表推导式[结果 fox循环 if语句]'''lst = ["Python周末%s期" % i for i in range(1, 27) if i%2 == 0]print ...
随机推荐
- CentOS 6.5下安装MySQL 5.6.21
Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本,本节亲自测试安装新版的MySQL. 测试机器环境: VMware Workstation 1 ...
- bzoj 1017 魔兽地图DotR
题目大意: 他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装备的力量值之和.装备分为基本装备和高级装备两种.基本装备可以直接从 ...
- js数值型遇0开始自动转换为8进制
如题,今天在项目更新时发现了js的这个自动转换问题,代码如下: var num = 0110; render:function(num){ var html="<a hre ...
- PCB 漏加阻抗条的臆想(转)
阻抗条,我对你是有感情的,这你一定要相信我! 否则,不会在之前的每一次拼板,都不忘拥你入Panel之怀. 自做CAM开始,已记不清我们曾有多少次不期而遇, 我们一同迎接朝阳,送走晚霞,凝望窗外如洗的月 ...
- 洛谷 P1433 吃奶酪(记忆化)
题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...
- AOP面向方面编程---postsharp
PostSharp是一个用于在.NET平台上实现AOP(Aspect-Oriented Programming,面向方面编程)的框架,现通过简单的示例代码来演示如何使用postsharp. 1.新建一 ...
- fiddler不同代理模式的区别
Fiddler有不同的代理模式,分为以下两种: 流模式(Streaming)和缓冲模式(Buffering). 流模式可以理解为一种实时通信的模式,有请求就有返回,也就是实时返回. 缓冲模式是等所有请 ...
- bnu 51640 Training Plan DP
https://www.bnuoj.com/bnuoj/problem_show.php?pid=51640 dp[i][j]表示前j个数,分成了i组,最小需要多少精力. 那么,求解订票dp[i][j ...
- [转]MVC之 自定义过滤器(Filter)
本文转自:http://www.cnblogs.com/kissdodog/archive/2013/01/21/2869298.html 一.自定义Filter 自定义Filter需要继承Actio ...
- java 选择排序与冒泡排序
选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ 选择排序 这一种简单的排序方法,它的基本思想是:R[n]第一次从R[0]~ ...