【31天蓝桥杯冲刺!】蓝桥杯相关的 Python 细节(2)set()函数的用法


码字不易,希望大家点赞支持一下

1. 集合的性质

注意事项:

  • 1.创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
  • 2.集合(set)是一个无序的不重复元素序列。
  • 3.可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。

1.1 集合的去重功能

这里体现了集合是一个不重复的元素序列,比如在力扣349. 两个数组的交集这道题中:

题目要求 输出结果中的每个元素一定是唯一的

我们就可以用集合来存储最终的结果,这样就避免了答案里重复元素的出现。

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

输出结果:

{1, 2, 3, 4}

1.2 快速判断元素是否在集合中

ls = {'a', 'b', 'c', 'd'}
print('a' in ls) 

输出:

True

1.3 集合的无序性

执行下面代码,会发现输出结果中不但去重复了,而且元素无序

a = set('abracadabra')
print(a)

输出:

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

再执行一次代码输出结果:

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

顺序又不同了,这就是集合的无序性

1.4 两个集合的运算

大家可以找几个例子自己试一下,这里就不演示了

a - b  ========== 集合a中包含而集合b中不包含的元素
a | b  ========== 集合a或b中包含的所有元素  
a & b  ========== 集合a和b中都包含了的元素
a ^ b  ========== 不同时包含于a和b的元素

2. 集合的基本操作

2.1 添加元素

  • 语法:s.add(x)
a = set(('a','b','c','d'))
a.add('f')
print(a)

输出:

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

2.2 移除元素

  • 语法:s.remove(x)
  • 注意:如果集合中本身元素就不存在,则会发生错误
a = set(('a','b','c','d'))
a.remove('f')
print(a)

输出:

Traceback (most recent call last):
  File "E:\Master\SKILL\python_ 蓝桥杯\test.py", line 2, in <module>
    a.remove('f')
KeyError: 'f'
  • 语法:s.discard( x )
  • 也是移除集合中的元素,且如果元素不存在,不会发生错误
a = set(('a','b','c','d'))
a.discard('f')
print(a)

输出:

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

2.3 清空集合

  • 语法: s.clear()
a = set(('a','b','c','d'))
a.clear()
print(a)

输出:

set()

小结:

我觉得平时刷题的话主要是注意一下集合的特性:无序性和不重复性,

还有这些基本操作基本就够用了,如果后面我遇到了相关的知识点我回来更新一下,

最后附上一个内置函数库汇总(此表来自菜鸟教程)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值