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版的文曲星猜数字游戏代码
Sep 02 Python
跟老齐学Python之集合(set)
Sep 24 Python
Python os模块学习笔记
Jun 21 Python
Python函数式编程指南(三):迭代器详解
Jun 24 Python
python获取元素在数组中索引号的方法
Jul 15 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
Python3.4解释器用法简单示例
Mar 22 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
Python 音频生成器的实现示例
Dec 24 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
基于Python实现人脸自动戴口罩系统
Feb 06 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生成简单的验证码
2016/06/01 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
python通过smpt发送邮件的方法
2015/04/30 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
八年级生物教学反思
2014/01/22 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python