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

在下周周ovo 2022-05-14 14:42:43 阅读数:11

Python基础深入了解入了

目录

楔子 :

一、集合的介绍

二、集合的基本使用方法

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

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

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

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

3、集合的删

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

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

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

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

​​​​​​​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()

 结语:


楔子 :

本篇博客主要向各位小伙伴们介绍的Python中<集合最基本操作方法>,带各位掌握Python基础,希望各位小伙伴们能够在这里收获到更多知识!让我们一起学习!一起进步

作者希望:由于博主水平限制,博客难免会有错误和不准之处,我也非常希望各位小伙伴能够在留言区指出。让我们一起共勉。

             最后如果觉得博主文章还不错的话,请三连支持一下哦

 

一、集合的介绍

集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

  • 去重,把一个列表变成集合,就自动去重了。

题目:

将列表[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}

 结语:

感谢各位友友能够看到这里:

在鲁迅一篇未发表的文章中说过:“代码看懂了不是懂一定要自己实际操作哇这样才能更好的理解和吸收。”
最后来一句:一个人可以在任何他怀有无限热忱的事情上成功,让我们一起进步吧

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Zyo5LiL5ZGo5ZGob3Zv,size_20,color_FFFFFF,t_70,g_se,x_16

版权声明:本文为[在下周周ovo]所创,转载请带上原文链接,感谢。 https://blog.csdn.net/weixin_64471900/article/details/124748192