Python中基础数据类型 set集合知识点总结


Posted in Python onAugust 02, 2021

集合的简介

  • 集合是一个无序、不重复的序列
  • 它的基本用法包括成员检测和消除重复元素
  • 集合对象也支持像 联合,交集,差集,对称差分等数学运算
  • 集合中所有的元素放在 {} 中间,并用逗号分开

集合的例子

这里会有个重点知识

# 声明
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基础数据类型 set 集合的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python监控文件或目录变化
Jun 07 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python中几种自动微分库解析
Aug 29 Python
Python中bisect的使用方法
Dec 31 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
解决python中0x80072ee2错误的方法
Jul 19 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 Python
Python中的套接字编程是什么?
Jun 21 Python
python unittest单元测试的步骤分析
Aug 02 #Python
python元组打包和解包过程详解
Aug 02 #Python
python字典进行运算原理及实例分享
Aug 02 #Python
Python中可变和不可变对象的深入讲解
Python基础数据类型tuple元组的概念与用法
Aug 02 #Python
opencv用VS2013调试时用Image Watch插件查看图片
基于python定位棋子位置及识别棋子颜色
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
浅析javascript 定时器
2014/12/23 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
在Python的循环体中使用else语句的方法
2015/03/30 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
python三引号输出方法
2019/02/27 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
公司前台接待岗位职责
2013/12/03 职场文书
学校门卫管理制度
2014/01/30 职场文书
药品采购员岗位职责
2014/02/08 职场文书
促销活动计划书
2014/05/02 职场文书
人事代理委托书
2014/09/27 职场文书
报到证办理个人委托书
2014/10/06 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL