当前位置:
首页 > temp > 简明python教程 >
-
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 是不可变的集合
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数