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 02 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
python调试神器PySnooper的使用
Jul 03 Python
Django 反向生成url实例详解
Jul 30 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
django 扩展user用户字段inlines方式
Mar 30 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
python+openCV对视频进行截取的实现
Nov 27 Python
深入探讨opencv图像矫正算法实战
May 21 Python
Python实现归一化算法详情
Mar 18 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
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
python数据结构之二叉树的遍历实例
2014/04/29 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python正则表达式的使用范例详解
2014/08/08 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
python实现随机梯度下降法
2020/03/24 Python
python判断数字是否是超级素数幂
2018/09/27 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
大学生学业生涯规划
2014/01/05 职场文书
《颐和园》教学反思
2014/02/26 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
师范生求职信
2014/06/14 职场文书
民事赔偿协议书
2014/11/02 职场文书
2019年工作总结范文
2019/05/21 职场文书