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如何import文件夹下的文件(实现方法)
Jan 24 Python
利用Python读取文件的四种不同方法比对
May 18 Python
python数据结构之列表和元组的详解
Sep 23 Python
python实现汽车管理系统
Nov 30 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
详解python使用turtle库来画一朵花
Mar 21 Python
python3.7 的新特性详解
Jul 25 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
Django celery异步任务实现代码示例
Nov 26 Python
Python基于execjs运行js过程解析
Nov 27 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 Python
代码复现python目标检测yolo3详解预测
May 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代码
2007/03/03 PHP
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
详解Python中time()方法的使用的教程
2015/05/22 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
深入了解python中元类的相关知识
2019/08/29 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
分享一个python的aes加密代码
2020/12/22 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
用友笔试题目
2016/10/25 面试题
绿色环保演讲稿
2014/05/10 职场文书
施工安全责任书范本
2014/07/24 职场文书
政协调研汇报材料
2014/08/15 职场文书
2015年教研组工作总结
2015/05/04 职场文书
致青春观后感
2015/06/09 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
MySQL常见优化方案汇总
2022/01/18 MySQL