【python基础篇004】深入了解集合的使用方法

简介: 【python基础篇004】深入了解集合的使用方法

目录

🏠🏠楔子 :

🏠🏠一、集合的介绍

🏠🏠二、集合的基本使用方法

🚀🚀​​​​🚀1、集合的创建

🚀🚀🚀2、集合的增(无序的增)

✨​​​​​​​✨add():为集合增加元素%EF%BC%9A%E4%B8%BA%E9%9B%86%E5%90%88%E5%A2%9E%E5%8A%A0%E5%85%83%E7%B4%A0)

✨​​​​​​​✨update():给集合迭代添加元素%EF%BC%9A%E7%BB%99%E9%9B%86%E5%90%88%E8%BF%AD%E4%BB%A3%E6%B7%BB%E5%8A%A0%E5%85%83%E7%B4%A0)

🚀🚀🚀3、集合的删

✨​​​​​​​✨remove(item):删除集合中的指定元素(item-----要删除的元素)%EF%BC%9A%E5%88%A0%E9%99%A4%E9%9B%86%E5%90%88%E4%B8%AD%E7%9A%84%E6%8C%87%E5%AE%9A%E5%85%83%E7%B4%A0%EF%BC%88item-----%E8%A6%81%E5%88%A0%E9%99%A4%E7%9A%84%E5%85%83%E7%B4%A0%EF%BC%89)

✨​​​​​​​✨discard() 方法 :删除集合中的指定元素%20%E6%96%B9%E6%B3%95%C2%A0%3A%E5%88%A0%E9%99%A4%E9%9B%86%E5%90%88%E4%B8%AD%E7%9A%84%E6%8C%87%E5%AE%9A%E5%85%83%E7%B4%A0)

 ✨​​​​​​​✨pop():随机删除一个元素%EF%BC%9A%E9%9A%8F%E6%9C%BA%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0)

✨​​​​​​​✨clear():清空集合%EF%BC%9A%E6%B8%85%E7%A9%BA%E9%9B%86%E5%90%88)

✨​​​​​​​✨del     :删除集合

🚀​​​​​​​🚀​​​​​​​🚀4、集合的其他操作

✨​​​​​​​✨4.1、 交集(&  或者 intersection)

✨​​​​​​​✨4.2 、并集(| 或者 union)

✨​​​​​​​✨4.3 、差集(- 或者 difference)

✨​​​​​​​✨4.4、反交集 (^ 或者 symmetric_difference)

✨​​​​​​​✨4.5、子集与超集

✨​​​​​​​✨4.6、frozenset不可变集合,让集合变成不可变类型。

✨​​​​​​​✨4.7、isdisjoint())

✨​​​​​​​✨4.8、​​​​​​​symmetric_difference_update())

🏠结语:


🏠🏠一、集合的介绍

集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:
  •   去重,把一个列表变成集合,就自动去重了。

题目:

将列表[1,2,2,3,4,5,5,66]中的数据去重

答案:

面对这种题目在未规定解题方法的话,还是不用算法这种难度大的方法,所以选择将列表转换为集合这种简单的方法,下面是解题方法:

#去重

>>>li = [1,2,2,3,4,5,5,66]
>>>print('去重前的列表为',li)
#将列表转换为集合
>>>set1 = set(li)
#将去重后的集合重新转换为列表
>>>li = list(set1)
>>>print('去重后的列表为',li)
去重前的列表为 [1, 2, 2, 3, 4, 5, 5, 66]
去重后的列表为 [1, 2, 3, 4, 5, 66]

  •   关系测试,测试两组数据之前的交集、差集、并集等关系。

🏠🏠​​​​​​​二、集合的基本使用方法

🚀​​​​​​​🚀​​​​🚀1、集合的创建

        可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

#创建集合set1
>>>set1 = set({1,2,'a'})
#创建集合set2
>>>set2 = {1,2,'a'}
>>>print(set1,set2)
{1, 2, 'a'} {1, 2, 'a'}

🚀​​​​​​​🚀​​​​​​​🚀2、集合的增(无序的增)

  • ✨​​​​​​​✨add():为集合增加元素

>>>set = {'a','b','c'}
>>>set.add('d')
>>>print(set)
{'a','b','d','c'}

  • ✨​​​​​​​✨update():给集合迭代添加元素

>>>set = {'hjjk','jack','lose'}
>>>set.update('abc')
>>>print(set)
{'a', 'jack', 'b', 'lose', 'hjjk', 'c'}

🚀🚀🚀3、集合的删

  • ✨​​​​​​​✨remove(item):删除集合中的指定元素(item-----要删除的元素)

>>>set= {'a','b','c','d'}
>>>set.remove('a')
>>>print(set)
{'c', 'b', 'a'}

  • ✨​​​​​​​✨discard() 方法 :删除集合中的指定元素

discard() 方法用于移除指定的集合元素。

该方法不同于remove()方法因为 remove()方法在移除一个不存在的元素时会发生错误,而discard()方法不会。

>>>set= {'a','b','c','d'}
>>>set.discard('e')
>>>print(set)
{'a', 'b', 'd', 'c'}

  • *✨​​​​​​​✨pop():随机删除一个元素*

>>>set= {'a','b','c','d'}
>>>set.pop()
>>>print(set)
{'c', 'b', 'a'}

  • ✨​​​​​​​✨clear():清空集合

>>>set= {'a','b','c','d'}
>>>set.clear()
>>>print(set)
set()

  • ✨​​​​​​​✨del     :删除集合

>>>set = {'a','b','c','d'}
>>>del set
>>>print(set)
<class 'set'>

🚀​​​​​​​🚀​​​​​​​🚀4、集合的其他操作

  • ✨​​​​​​​✨4.1、 交集(&  或者 intersection)

>>>set1 = {1,2,3,4,5}
>>>set2 = {4,5,6,7,8}
>>>print(set1 & set2)
>>>print(set1.intersection(set2))  
{4, 5}
{4, 5}

  • ✨​​​​​​​✨4.2 、并集(| 或者 union)

>>>set1 = {1,2,3,4,5}
>>>set2 = {4,5,6,7,8}
>>>print(set1 | set2) 
>>>print(set2.union(set1)) 
{1, 2, 3, 4, 5, 6, 7,8}
{1, 2, 3, 4, 5, 6, 7,8}

  • ✨​​​​​​​✨4.3 、差集(- 或者 difference)

>>>set1 = {1,2,3,4,5}
>>>set2 = {4,5,6,7,8}
>>>print(set1 - set2)
>>>print(set1.difference(set2))  
{1, 2, 3}
{1, 2, 3}

  • ✨​​​​​​​✨4.4、反交集 (^ 或者 symmetric_difference)

就是两个集合去掉相同部分,剩下部分的并集
>>>set1 = {1,2,3,4,5}
>>>set2 = {4,5,6,7,8}
>>>print(set1 ^ set2)  
>>>print(set1.symmetric_difference(set2))  
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}

  • ✨​​​​​​​✨4.5、子集与超集

>>>set1 = {1,2,3}
>>>set2 = {1,2,3,4,5,6}

>>>print(set1 < set2)            #返回的是bool值
>>>print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。
True
True
>>>print(set2 > set1)
>>>print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。
True
True

  • ✨​​​​​​​✨4.6、frozenset不可变集合,让集合变成不可变类型。

s = frozenset('carry')
print(s,type(s))  
frozenset({'c', 'y', 'b', 'r'}) <class 'frozenset'>

  • ✨​​​​​​​✨4.7、isdisjoint()

isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果 没有返回 True, 有的话返回 False。
>>>set1 = {1,2,3}
>>>set2 = {1,2,3,4,5,6}
>>>z= set1.isdisjoint(set2)
>>>print(z)
False

  • ✨​​​​​​​✨4.8、​​​​​​​symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
>>>set1 = {1,2,3,4,5}
>>>set2 = {4,5,6,7,8}
>>>set1.symmetric_difference_update(set2)
>>>print(set1)
{1, 2, 3, 6, 7, 8}

相关文章
|
7月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1264 1
|
8月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
239 0
|
9月前
|
存储 索引 Python
python 集合的所有基础知识
python 集合的所有基础知识
902 0
|
7月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
322 4
|
8月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
895 2
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
819 1
思科设备巡检命令Python脚本大集合
|
存储 缓存 安全
Python frozenset 集合详解:不可变集合的终极指南
frozenset是Python中一个常被忽视但极具价值的不可变集合类型。本文深入解析其本质、操作方法与应用场景,揭示其通过不可变性带来的安全性与性能优势。从底层实现到实战案例,涵盖字典键使用、缓存优化及类型注解等高级场景。同时对比性能数据,提供最佳实践指南,并展望Python 3.11+中的优化。掌握frozenset,可为代码带来更强健性与效率,适合多种特定需求场景。
495 5
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
1073 1
|
存储 缓存 API
解密 Python 集合的实现原理
解密 Python 集合的实现原理
408 12
|
存储 API 索引
Python 的集合是怎么实现的?
Python 的集合是怎么实现的?
192 9

推荐镜像

更多