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 isinstance判断对象类型
Sep 06 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
Python Gitlab Api 使用方法
Aug 28 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
Python API len函数操作过程解析
Mar 05 Python
Python 线程池模块之多线程操作代码
May 20 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正则表达式使用的详细介绍
2013/04/27 PHP
yii操作cookie实例简介
2014/07/09 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
js读取配置文件自写
2014/02/11 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
opencv实现简单人脸识别
2021/02/19 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
质检部岗位职责
2013/11/11 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
求职意向书范本
2015/05/11 职场文书
主持人开场白台词
2015/05/29 职场文书
音乐之声观后感
2015/06/04 职场文书
初中军训感想
2015/08/07 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
浅谈python中的多态
2021/06/15 Python