Python学习笔记(3-4):内置数据结构之集合

在这里插入图片描述

文章导读

 - 课程难度:★☆☆☆☆
 - 预计学习时间:20分钟
 - 简介:本节主要讲解了Python内置数据结构中集合数据的两种定义方式及几个常用的操作函数。
 - 重点涉及的函数和内容:(1)set()函数定义集合;(2)增添元素:add();(3)删除元素:remove()、discard()和pop()函数;
(4)集合中求交集、并集、差集以及异或运算。

一、集合的定义

集合就像是我们在中学数学中学习过的集合一样,是无序、可变的容器对象,所有元素放在大括号{}中,元素之间用逗号分隔开,一个集合内的元素不能重复
集合的定义有两种方式,一种是根据元组、列表以及以后的各种各样的numpy或是pandas序列中进行定义,使用set()函数;另一种是直接用{}定义,如果在大括号{}中没有元素则不会形成集合,因为这时定义的是一个空字典。定义过程和输出结果如下:

1、使用set()函数

a = [1, 2, 3, 3, 4, 4, 4, 5]
print(set(a)) 
a = (1, 2, 3, 3, 4, 4, 4, 5)
print(set(a)) 

输出结果如下:

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

2、使用花括号{}

直接写一个{},在里面描述自己想要提到的元素即可:

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

输出结果如下:

{1, 2, 3, 3, 4, 4, 4, 5}

二、集合的操作函数

集合的操作有两种方法,一种是利用函数,另一种是利用运算符。利用集合的成员函数会改变原值,同时没有返回值,但利用运算符,不会改变原值,返回的是运算结果。

1、增添元素:.add()函数

a = {1, 2, 3, 4, 5}
a.add(6)
print(a)
a.add(6)		# 元素6在集合a中已经存在,因此不会追加进集合中,同时不会报错
print(a)

输出结果如下:

{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}

2、删除元素:remove()、discard()和pop()函数

remove()discard()函数都是用于删除集合中指定值的元素,而pop()随机删除集合中的元素。
(1) remove()函数,如果集合里没有待移除元素,就会报错

a = {1, 2, 3, 4, 5}
a.remove(2)
print(a)
a.remove(2)	# 报错1,在删除两次2之后,列表a中没有2了
print(a)

输出结果如下:

{1, 3, 4, 5} 
# 报错1【KeyError: 2】

(2)discard()函数,如果集合里没有待删除的元素,不会报错而会返回原集合

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

输出结果如下:

{1, 3, 4, 5}
{1, 3, 4, 5}

(3)pop()函数,用来随机删除并返回集合中的一个元素,如果集合为空则会报错

a = {6, 2, 3, 4, 5}
print(a.pop())

输出结果如下:

2

3、集合运算:&、|、-、^

在集合运算中,我们常用的运算包括求交集、并集、差集以及异或运算

a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
print(a & b) 		# 交集
print(a | b) 		# 并集
print(a - b)		# 差集,返回属于a但不属于b的元素
print(a ^ b)		# 异或,返回不同时存在于两个集合的元素

输出结果如下:

{4, 5}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3}
{1, 2, 3, 6, 7, 8}

这种方式也同时支持结合赋值运算,像数值运算中+=-=一样:

a &= b
print(a)

输出结果如下:

{4, 5}

对于缺乏Python基础的同仁,可以通过免费专栏🔥《Python学习笔记(基础)》从零开始学习Python

结语

请始终相信“Done is better than perfect” ,不要过分追求完美,即刻行动就是最好的开始, 一个模块一个模块地积累和练习,必将有所收获。
还有其他的问题欢迎在评论区留言📝!


[版权申明] 非商业目的注明出处可自由转载,转载请标明出处!!!
博客:butterfly_701c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值