【人生苦短,我学 Python】基础篇——集合(Day11)

举报
AI 菌 发表于 2021/08/04 23:30:52 2021/08/04
【摘要】 写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~ 我的博客地址为:【AI 菌】的博客 我的Github项目地址是:【AI 菌】的Github -> 前往【人生苦短,我...

写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

一、集合

(1) 集合介绍

集合(set)是一个无序的不重复元素序列,这和数学中的集合概念类似。在Python中,可以使用大括号 { } 或者 set() 函数创建集合。

需要注意的是:创建一个空集合必须用 set() 而不是 { }, 因为 { } 是用来创建一个空字典。

(2) 创建集合

1、由于{ } 是用来创建一个空字典。所以创建一个空集合,只能通过set()来创建,演示如下:

a = set()

  
 
  • 1

2、创建一个普通集合,直接用大括号{}来创建,演示如下:

a = {1, 2, 3, 4, 5}
print(a)

  
 
  • 1
  • 2

输出结果:

{1, 2, 3, 4, 5}

  
 
  • 1

除此之外,也可以通过set()来创建:

b = set("abc121")
print(b)

  
 
  • 1
  • 2

输出结果:

{'b', '1', '2', 'c', 'a'}

  
 
  • 1

输出的元素顺序和创建时的顺序不同。可见,集合里的元素是无须的,并且是不可重复的。

(3) 集合运算

下面来演示两个集合间的不同运算:.

a = set("ac123")
b = set("abc121")
print(a)
print(b)

print("集合a中包含而集合b中不包含的元素:", a - b)
print("集合a或b中包含的所有元素:", a | b)
print("集合a和b中都包含了的元素:", a & b)
print("不同时包含于a和b的元素", a ^ b)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

输出结果如下:

{'1', 'a', 'c', '3', '2'}
{'1', 'a', 'c', 'b', '2'}
集合a中包含而集合b中不包含的元素: {'3'}
集合a或b中包含的所有元素: {'1', 'a', 'c', '3', 'b', '2'}
集合a和b中都包含了的元素: {'c', '1', 'a', '2'}
不同时包含于a和b的元素 {'3', 'b'}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

二、集合的基本操作

(1) 添加元素

向已有集合中添加新的元素,有以下两种方式:

1、使用 set.add(x) 向集合中添加新个元素x,演示如下:

a = {1, 2, 3}
a.add(6)
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{1, 2, 3, 6}

  
 
  • 1

注:如果元素已存在,则不进行任何操作。

2、使用方法set.update(x)也可以添加元素,且参数可以是列表,元组,字典等,演示如下:

a = {"a", "b", "c"}
a.update({"d", "e"})
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{'b', 'c', 'd', 'e', 'a'}

  
 
  • 1

除此之外,添加的元素也可以是列表、元组等:

a = {"a", "b", "c"}
a.update((1, 2), (3, 4))
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{1, 'b', 2, 3, 4, 'c', 'a'}

  
 
  • 1

(2) 删除元素

删除集合中的元素,有以下三种方式:

1、使用方法set.remove(x)将集合中元素x删除,演示如下:

a = {"a", "b", "c"}
a.remove("b")
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{'c', 'a'}

  
 
  • 1

注:如果删除的元素不存在,则会发生报错。

2、使用set.discard()也可删除集合中的元素,且如果元素不存在,不会发生错误。演示如下:

a = {"a", "b", "c"}
a.discard("b")
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{'a', 'c'}

  
 
  • 1

3、也可以通过set.pop()随机删除集合中的一个元素,演示如下:

a = {"a", "b", "c"}
a.pop()
print(a)

  
 
  • 1
  • 2
  • 3

输出结果:

{'a', 'b'}

  
 
  • 1

注:由于是随机删除,所以每次输出的结果可能不一样

(3) 判断元素是否在集合中

使用语法:x in set,可以判断元素 x 是否在集合 set 中,存在返回 True,不存在则返回 False。演示如下:

set1 = {"a", "b", "c"}
if "b" in set1: print("b存在集合中")
else: print("b不存在集合中")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出结果:

b存在集合中

  
 
  • 1

三、集合内置函数

在Python集合中,提供了一些内置的函数和方法,极大地方便了开发者处理集合相关的数据,下面总结了一些常用的集合内置函数,如下表所示:

函数 功能描述
set.add(x) 为集合添加元素
set.update(x) 为集合添加元素(列表、元组、字典)
set.remove(x) 删除集合中的元素x
set.discard(x) 删除集合中的元素x
set.pop() 随机删除集合中的一个元素
set.clear() 清空集合,使之成为一个空集合
set.copy() 拷贝一个集合
set.intersection(set1, set2 … etc) 返回两个或更多集合中都包含的元素,即交集
set.union(set1, set2…) 返回两个集合的并集,即包含了所有集合的元素
set1.difference(set2) 计算集合set1与集合set2的差集

-> 回到【人生苦短,我学 Python】总目录 <-

在这里插入图片描述
由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!

文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。

原文链接:ai-wx.blog.csdn.net/article/details/113747317

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。