python基础-集合set及内置方法
数据类型之集合-set
用途:多用于去重,关系运算
定义方式:通过大括号存储,集合中的每个元素通过逗号分隔。集合内存储的元素必须是不可变的,因此,列表-List 和字典dict 不能存储在集合中
注意:定义空集合时,必须使用set定义。
# 定义空集合
s1 = set()
print(type(s1)) # 非空集合定义
s2 = {1,2,'a',2,'b'} # s2 = set({1,2,'a','b'})
print("s2:{}".format(s2)) # 使用list 或tuple 或dict 作为输入集合,重复元素在set 中会自动被过滤
s3 = set([1,2,3,2,4])
print(type(s3))
print(s3) # 输出:{1,2,3,4} s4 = set((1,2,3,1,2))
print(s4) # 输出:{1,2,3} s5 = set({1:"alex",2:"egon",3:"sean"})
print(s5) # 输出:{1,2,3}
特性:无序、可变、去重且可存储多个值的数据类型
常用方法
数学运算
合集:数学上的并集,两个集合相加,去重后的元素。用
|表示a = {1,2,3,4}
b = {3,4,5,6}
print(a | b) # 打印结果:{1,2,3,4,5,6}
交集:两个集合都存在且去重后的元素。用
&表示a = {1,2,3,4}
b = {3,4,5,6}
print(a & b) # 打印结果:{3,4}
差集:集合a 和集合b ,集合a 减去 集合b 的元素。用
-表示a = {1,2,3,4}
b = {3,4,5,6}
print(a - b) # 打印结果:{1,2}
print(b - a) # 打印结果:{5,6}
对称差集:减去同时存在于两个集合的元素,余下的元素就是对称差集。用
^表示a = {1,2,3,4}
b = {3,4,5,6}
print(a ^ b) # 打印结果:{1,2,5,6}
集合的增删改查
add
语法:
set.add()给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作
s1 = set([1,2,3,4,5,4,3])
s1.add('6')
s1.add(3) # 可以添加已存在的元素,但是不会有任何效果
print(s1) # 打印结果:{1,2,3,4,5,'6'}
注意:add 方法不可以添加列表或字典,因列表和字典是可变的数据类型
update
语法:
set.update()可以将列表,元组,字符串,字典中的元素打散增加到集合中
s1 = {1,2,3}
l1 = ['a','b','c']
s1.update(l1)
print(s1) # 打印结果:{1,2,3,'a','b','c'}
s2 = {1,2,3}
t1 = ('1','2',3,4)
s2.update(t1)
print(s2) # 打印结果:{1,2,3,'1','2',4}
s3 = {1,2,3}
str1 = "dawn"
s3.update(str1)
print(s1) # 打印结果:{1,2,3,'d','a','w','n'}
s4 = {1,2,3}
d1 = {"name":"sean","age":18,"hobby":["read","study"]}
s4.update(d1)
print(s1) # 打印结果:{1,2,3,'name','age','hobby'} 取字典的key 作为元素
difference_update
语法:
set.difference_update(set1)移除两个集合中都存在的元素并将值返回给set,set1不会改变
s1 = {'a','e',1,2}
s2 = {'e',1,2,3}
s1.difference_update(s2)
print(s1) # 打印结果:{'a'}
print(s2) # 打印结果:{1,2,3,'e'}
remove
语法:
set.remove()移除集合中的元素,如果集合中没有这个元素则会报错
s1 = {1,2,'e','4'}
s1.remove(2)
print(s1) # 打印结果:{1,'e','4'}
s1 = {1,2,'e','4'}
s1.remove(4) # 报错,集合中没有这个元素
print(s1)
discard
语法:
set.discard()和remove 一样都是移除集合中的元素,但如果结合中没有这个元素不会报错,这就是跟remove 的区别
s1 = {1,2,'e','4'}
s1.discard('2') # 不报错
print(s1) # 打印结果:{1,2,'e','4'}
s1 = {1,2,'e','4'}
s1.discard(2)
print(s1) # 打印结果:{1,'e','4'}
扩展
- frozenset 是不可变的集合
python基础-集合set及内置方法的更多相关文章
- python基础-列表List及内置方法
数据类型之列表-List 用途:用于存一个或多个不同类型的值 定义:通过中括号存值,每个值之间通过逗号进行分隔 l1 = [1,'a',3,'b'] 特性:有序.可变.存多个值的数据类型 常用方法: ...
- python基础-数字类型及内置方法
--数字类型及内置方法 整型-int 用途:多用于年龄.电话.QQ号等变量 定义方法 age = 18 # age = int(18) 常用方式:多用于数学计算 # int(x)将x转换成整数,是向下 ...
- Python基础之数字类型内置方法
目录 1. 整型内置方法(int) 2. 浮点型内置方法 3. 常用操作 1. 整型内置方法(int) 用途:年龄,号码,等级等 定义: age = 18 常用操作 # 算数运算.比较运算 age = ...
- Python基础之字符串类型内置方法
目录 1. 字符串类型 2. 常用操作及内置方法 3. 其他内置方法 1. 字符串类型 用途:姓名,性别等 定义: name1 = 'zhaojun' name2 = "zhaojun&qu ...
- python 基础之列表切片内置方法
列表操作 c=['cx','zrd','ajt','dne'] #定义一个列表,有4个元素 #增删改查 print(c[3]) #从0计数 测试 D:\python\python.exe D:/unt ...
- python基础-元组(tuple)及内置方法
元组-tuple 用途:用于存储多个不同类型的值,但是不能存储可变类型数据 定义方法:用小括号存储数据,数据与数据之间通过逗号分隔,元组中的值不能改变. 注意: 1.定义元组时,如果里面只有一个值,在 ...
- 二十六. Python基础(26)--类的内置特殊属性和方法
二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...
- python学习day7 数据类型及内置方法补充
http://www.cnblogs.com/linhaifeng/articles/7133357.html#_label4 1.列表类型 用途:记录多个值(一般存放同属性的值) 定义方法 在[]内 ...
- Python进阶之浅谈内置方法(补充)
目录 列表类型的内置方法 元组类型的内置方法 字典类型的内置方法 集合类型的内置方法 列表类型的内置方法 1.作用:描述名字,说的话等 2.定义方式 s=['tim','age'] s=str('ti ...
随机推荐
- MVC4 Jqgrid设计与实现
项目本来使用的是webgrid.后台弃用改成Jqgrid插件. 首先介绍一下webgrid的用法:webgrid是mvc中HtmlHelper自带的.首先创建viewmodel用于数据的绑定,然后在页 ...
- FTP协议的主动模式和被动模式的区别
最近准备做一个<FtpCopy系列教程>,主要讲解Ftp协议主动模式和被动模式的区别.以及FTP服务器的安装部署,然后通过几个常用实例演示,详细讲解如何使用FtpCopy进行数据自动备份. ...
- Kafka 学习笔记之 删除Topic
删除Topic 1. 显示所有Topic信息,testTopic是我们将要删除的Topic 2. 首先确认server.properties下面配置是否已经加上delete.topic.enable= ...
- MySql + Workbench使用教程
Mysql安装及使用 注意:不推荐下载zip版本,需要配置额外的环境变量和其他设置,很复杂.官方的windows安装版本可以自动完成所有操作. 下载地址:https://dev.mysql.com/d ...
- 【DP合集】棋盘 chess
给出一张 n × n 的棋盘,格子有黑有白.现在要在棋盘上放棋子,要求: • 黑格子上不能有棋子 • 每行每列至多只有一枚棋子 你的任务是求出有多少种合法的摆放方案.答案模 109+7109+7 . ...
- bugku color
下载打开压缩包是七张图片,分别是七个颜色,使用stegsolve打开发现了异常. 七张图片拼起来是 make me tall,看来是要修改图片高度. 我们使用winhex打开图片并在十六进制中修改图片 ...
- 编译 lame for iOS
网上找了许多编译lame的教程,结果都是编译失败,多次尝试后发现是编译脚本放错路径了,记录下编译的过程,把编译脚本放到源码文件夹中和修改编译脚本中的目录是关键: 一.首先去Lame官网 http:// ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- 代码审计-凡诺CMS 2.1文件包含漏洞
0x01代码审计 后台账号密码: admin admin 安装好了是这样的 漏洞文件:/channel.php if (ism()) { include($dir.$t_mpath.$c_mcmode ...
- 机器学习:不平衡信息有序平均加权最近邻算法IFROWANN
一 背景介绍 不平衡信息,特点是少数信息更珍贵,多数信息没有代表性.所以一般的分类算法会被多数信息影响,而忽略少数信息的重要性. 解决策略: 1.数据级别 (1)上采样:增加稀有类成本数 (2)下采样 ...