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 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python中常见的异常总结
Feb 20 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python绘制动态曲线教程
Feb 24 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
Python 数据可视化之Matplotlib详解
Nov 02 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使用标签替换的方式生成静态页面
2015/05/21 PHP
php压缩文件夹最新版
2018/07/18 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
JS随机密码生成算法
2019/09/23 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Python中zfill()方法的使用教程
2015/05/20 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
django如何自己创建一个中间件
2019/07/24 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
室内设计专业毕业生求职信
2014/05/02 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
MySQL中in和exists区别详解
2021/06/03 MySQL
redis实现的四种常见限流策略
2021/06/18 Redis
python 字典和列表嵌套用法详解
2021/06/29 Python
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记
如何使用python包中的sched事件调度器
2022/04/30 Python