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 相关文章推荐
开源Web应用框架Django图文教程
Mar 09 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
pycharm远程调试openstack代码
Nov 21 Python
python3解析库pyquery的深入讲解
Jun 26 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
解决python 输出到csv 出现多空行的情况
Mar 24 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
python运算符之与用户交互
Apr 13 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
php unlink()函数使用教程
2018/07/12 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
Python 实现微信自动回复的方法
2020/09/11 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
数据库笔试题
2013/05/09 面试题
经理秘书找工作求职信
2013/12/19 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
师德师风自查材料
2014/10/14 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
搞笑结婚保证书
2015/05/08 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
学习焦裕禄观后感
2015/06/09 职场文书