Python - 基础数据类型 set 集合
集合的简介
- 集合是一个无序、不重复的序列
- 它的基本用法包括成员检测和消除重复元素
- 集合对象也支持像 联合,交集,差集,对称差分等数学运算
- 集合中所有的元素放在 {} 中间,并用逗号分开
集合的栗子
这里会有个重点知识
# 声明
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) set_ = {1, 1, 1, 1, 2}
print(set_) # 输出结果
{'orange', 'pear', 'banana', 'apple'}
{1, 2}
自动去重了,每个元素只保留一个,且是无序的
再来看一个栗子
set_ = {{1, }, {1, }}
print(set_) set_ = {[1, ], [2, ]}
print(set_) # 输出结果
set_ = {{1, }, {1, }}
TypeError: unhashable type: 'set' set_ = {[1, ], [2, ]}
TypeError: unhashable type: 'list'
为什么报错?
重点:因为 set 集合只能包含不可变对象元素,而列表、集合本身都是可变对象,所以会报错
集合和列表的区别
- 列表中的元素允许重复,集合中的元素不允许重复
- 列表是有序的,提供了索引操作,集合是无序的,没有索引操作
set_ = {1, 1, 1, 1, 2}
set[1] # 输出结果
set[1]
TypeError: 'type' object is not subscriptable
提示该类型不能下标
特殊集合
如何创建一个空集合
set_ = {}
print(set_, type(set_))
# 输出结果
{} <class 'dict'>
不可以直接 { },这样默认是一个空字典哦
正确写法
set_ = set()
print(set_, type(set_)) # 输出结果
set() <class 'set'>
常见运算操作
运算符 |
合并多个集合
>>> {1, 2} | {3, 4}
{1, 2, 3, 4}
>>> {1, 2} | {3, 4} | {5, 6}
{1, 2, 3, 4, 5, 6}
运算符 -
从集合中删除元素
>>> {1, 2, 3, 4} - {3, 4, 5, 6}
{1, 2}
运算符 &
取交集,返回两个集合都包含的元素
>>> {1, 2, 3} & {3, 4, 5}
{3}
运算符 ^
取差集
>>> {1, 2, 3} ^ {3, 4, 5}
{1, 2, 4, 5}
关键字 in
检查集合中是否包含指定元素
>>> 'polo' in {'www', 'polo', 'com'}
True
>>> 'yy' in {'www', 'yyy', 'com'}
False
常见函数
len(set)
获取集合的长度
>>> len({1, 2, 3})
3
>>> len({1, 2, 3, 4})
4
max(set)
获取集合中最大的元素
>>> max({1, 2})
2
>>> max({1, 3, 2})
3
min(set)
获取集合中最小的元素
>>> min({1, 2})
1
>>> min({1, 3, 2})
1
集合常见方法
add(item)
向集合中新增一个元素 item
# add
set_ = {1, 2, 3}
set_.add(1)
set_.add(4)
set_.add("5")
print(set_) # 输出结果
{1, 2, 3, 4, '5'}
remove(item)
从集合中删除指定元素 item
# remove
set_ = {1, 2, 3}
set_.remove(2)
print(set_) # 输出结果
{1, 3}
clear()
移除集合中的所有元素
# remove
set_ = {1, 2, 3}
print(set_)
set_.clear()
print(set_) # 输出结果
{1, 2, 3}
set()
pop()
移除集合首位元素,并返回该元素值
# pop
a = {1, 2, 3, 4}
print(a.pop())
print(a.pop())
print(a) # 输出结果
1
2
{3, 4}
difference()
从源集合中找出目标集合中没有的元素集合
# difference
a = {1, 2, 3, 4}
b = {2, 3, 5}
print(a.difference(b)) # 输出结果
{1, 4}
union()
返回两个集合的并集
# union
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # 输出结果
{1, 2, 3, 4, 5}
intersection()
返回两个集合的交集
# intersection
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.intersection(set2)) # 输出结果
{3}
issubset()
判断指定集合是否为子集
# issubset
set1 = {1, 2}
set2 = {1, 2, 3}
print(set1.issubset(set2)) # 输出结果
True
issuperset()
判断指定集合是否为超集
# issuperset
set1 = {1, 2, 3}
set2 = {1, 2}
print(set1.issuperset(set2)) # 输出结果
True
集合总结
因为集合是不可重复的,所以可以利用它来处理一些需要避免重复插入的场景,比如为了避免某一学生的信息重复录入
Python - 基础数据类型 set 集合的更多相关文章
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
- Python基础数据类型之集合以及其他和深浅copy
一.基础数据类型汇总补充 list 在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- Python 入门之Python基础数据类型及其方法
Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...
- Python基础篇(set集合)
Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...
- 图解python | 基础数据类型
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
- python基本数据类型之集合
python基本数据类型之集合 集合是一种容器,用来存放不同元素. 集合有3大特点: 集合的元素必须是不可变类型(字符串.数字.元组): 集合中的元素不能重复: 集合是无序的. 在集合中直接存入lis ...
随机推荐
- SQL 查询语句总是先执行 SELECT?你们都错了
很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否可以对窗口函数返回的结果进行过滤"这个问题,得出的结论是"窗口函数 ...
- R语言--读取文件(数据输入)
1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...
- 将Flink计算完毕后的数据Sink到Nebula
Flink是目前流计算的隐形王者,在国际国内有有庞大的拥趸. Nebula是国产图数据库的后起之秀,在DBEngines中排名也逐年上升. 将两者进行结合,可以产生很多应用场景:比如实时计算服务链路调 ...
- Unity不规则按钮点击区域(UGUI)
文章目录 一. 前言 二. 最终效果 三. 实现 1.创建UICamera 2. UIPolygon节点 3. 编辑碰撞区域 5. 运行测试 6. UIPolygon代码 一. 前言 游戏开发中,可能 ...
- Mongo写入安全机制
写入安全(Write Concern) 是一种客户端设置,用于控制写入的安全级别.默认况下,插入.删除和更新都会一直等待数据库响应(写入是否成功),然后才会继续执行.通常,遇到错误时,客户端会抛出一个 ...
- 11、linux的目录结构
11.1.查看磁盘的id: blkid 11.2.linux目录类似一个倒挂的树: / 是所有目录的顶点,目录磁盘和分区是没有关联的,因此/下不同的目录会对应不同的磁盘的不同的分区: linux中硬盘 ...
- JVM到底是什么呢
在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.那JVM到底是什么呢? JVM是Java程序的运行环境,它同时也是一个操作系统的一个应用程序.一个进程,因此他也有他自己的运行生命周期, ...
- 企业如何通过CRM系统使销售周期缩短
企业为什么要缩短销售周期?因为这意味着可以节约更多开支,从而达到企业利润最大化.但是有不少企业尤其是B2B行业,销售周期都在三个月以上.通过调查发现,很多企业在客户信息和销售管道上缺乏管理和策略.Zo ...
- SpringCloud:feign默认jackson解析'yyyy-MM-ddTHH:mm:ssZ'时间格式报错
Feign默认的使用jackson解析,所以时间传值时会报错,时间格式错误 解决办法: 修改feign解析方式为fastjson方式: @Configuration public class CxfC ...
- MySQL 插入中文后,显示为空白
https://blog.csdn.net/sun_hj_95/article/details/79488583 在MySQL中插入中文后,显示如下: 解决方案: 在my.ini (在MySQL的安装 ...