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读写ini文件的方法
May 28 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
tensorflow多维张量计算实例
Feb 11 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
python 错误处理 assert详解
Apr 20 Python
python SOCKET编程基础入门
Feb 27 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
Python线程池与GIL全局锁实现抽奖小案例
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
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
破解Session cookie的方法
2006/07/28 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
python实现定时播放mp3
2015/03/29 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python中set常用操作汇总
2016/06/30 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
详解用python写一个抽奖程序
2019/05/10 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
法雷奥SQA(electric)面试问题
2016/01/23 面试题
教师自我剖析材料(群众路线)
2014/09/29 职场文书
人事主管岗位职责
2015/02/04 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
我的1919观后感
2015/06/03 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
Redis特殊数据类型bitmap位图
2022/06/01 Redis