python中的集合

目录

初识集合

集合的含义

集合的作用

集合的使用场景

集合的定义

集合的常用操作

元素的增加

函数add()

元素的删除

函数remove()

函数clear()

函数pop()

集合的遍历

for循环

while循环


初识集合

集合的含义

在pyrhon中,集合是一种内置的数据结构,用于存储无序、唯一的元素。

无序:在集合中的元素没有固定顺序。

唯一:集合中的元素不重复。

集合的作用

|-------|-------------|
| 去重 | 从列表中移除重复的元素 |
| 查找效率高 | 判断指定元素是否存在 |
| 集合运算 | 交集、并集等操作 |
| 关系判断 | 判断集合包含关系 |

集合的使用场景

列表去重、判断元素是否存在、集合运算、判断子集及超集。

集合的定义

由{}包裹的元素组成的序列,且元素可以是不同的数据类型。

语法结构:

集合名 = {元素1,元素2,元素3,......}

python 复制代码
#以下都是集合
my_set = {'ele1','ele2','ele3'}
my_set2 = {1,2,3}
my_set3 = {True,True,False}
my_set4 = {'ele1',4,False}

集合的常用操作

清晨,阳光洒落在村庄的青石小路上,你,小小勇者,背起剑与行囊,准备出发完成今日的冒险任务------收集魔晶碎片。据说魔晶碎片分布在森林、湖边和山洞之中,只有集齐五种不同的碎片,才能解锁古代祭坛的大门。

元素的增加

函数add()

功能:向集合中添加一个新元素,如果元素已存在,则不会重复添加,不能添加列表、字典。

语法结构:集合.add(元素)
第一站:森林深处------收集开始

森林中迷雾缭绕,勇者击败了几只树灵,捡到了两枚发着绿光的碎片---翠绿魔晶。你兴奋地拿出背包里的碎片收集袋,却发现无论再怎么捡"翠绿魔晶",袋子里也只有一块,可能是其中一块魔晶将另一块吸收了;接着,你又从一棵大树下的藤蔓中发现了另一块"幽紫魔晶":

python 复制代码
bag = set() #集合内的元素不重复
bag.add("翠绿魔晶")
bag.add("翠绿魔晶")  # 重复添加也不会重复存在
bag.add("幽紫魔晶")
print(bag)

对代码进行运行测试:

元素的删除

函数remove()

功能:删除集合中的指定元素,若元素不存在,会报错KeyError。

语法结构:集合.remove(元素)
第二站:湖边陷阱------移除错误碎片

湖边,你见一块晶石泛着蓝光,以为是"冰蓝魔晶",便将其收集起来,但刚准备离开,巡湖的老猎人提醒你:"那不是魔晶,是鱼人的水晶诱饵,带着它会吸引危险。"你连忙取出袋子,小心翼翼地将其移除:

python 复制代码
bag = {'幽紫魔晶', '翠绿魔晶'}
bag.add("湖边碎片")
print(f"捡起后背包内的魔晶碎片有{bag}")
bag.remove("湖边碎片")
print(f"扔掉后背包内的魔晶碎片有{bag}")

对代码进行运行测试:

函数clear()

功能:移除集合中所有元素,使集合变为空集合。

语法结构:集合.clear()
第三站:山洞探险------清空重来

你继续前往山洞,却在一场地震中摔了跤,袋子掉进泥水中。碎片沾满污泥、失去了能量。

你叹了口气,只能清空收集袋,准备重新收集。"这次我得更小心了。"你拍拍身上的泥,继续前行。

python 复制代码
bag = {'幽紫魔晶', '翠绿魔晶'}
bag.clear()
print(f"摔跤后你手中的魔晶碎片还剩:{bag}")

对代码进行运行测试:

函数pop()

功能:由于集合是无序的,pop()函数会随机删除并返回集合中的某个元素,若集合为空,会报错KeyError。

语法结构:集合.pop()
第四站:魔晶之心------火焰魔晶的试炼

在经历了数次挑战之后,你终于集齐了四块较为常见的魔晶碎片:翠绿魔晶、幽紫魔晶、风之魔晶和光明魔晶。剩下的唯一缺少的碎片便是火焰魔晶,隐藏在烈焰之岛的火焰试炼中。在烈焰岛上,你必须通过重重火焰挑战才能接近魔晶。最后,你面对火焰漩涡中的火焰魔晶,火焰之神告诉他:要想获得火焰魔晶,就必须放弃一块已有的魔晶。你毫不犹豫地选择献祭自己最珍贵的一块魔晶:

python 复制代码
bag = {"翠绿魔晶","幽紫魔晶","风之魔晶","光明魔晶"}
print(f'被你献祭的魔晶碎片是:{bag.pop()}')

对代码进行运行测试:

集合的遍历

for循环

第五站:地穴迷宫------整理收集情况

你在地穴中一路奋战,终于又重新收集到了五种魔晶碎片。你点燃火把,开始一个个检查,边走边数,确认每一块魔晶的种类和颜色,以免遗漏。

python 复制代码
bag = {"翠绿魔晶","幽紫魔晶","光明魔晶","火焰魔晶","风之魔晶"}
for mojing in bag:
    print(f"收集到:{mojing}")

对代码进行运行测试:

while循环

第五站:古代祭坛------等待封印解除

最后,你抵达神秘的古代祭坛,将碎片一一放入祭坛的五个凹槽,但祭坛没有立刻反应。你决定重新检查一下每个碎片的位置,确保没有错漏,于是开始逐个核对:

python 复制代码
bag = {"翠绿魔晶","幽紫魔晶","光明魔晶","火焰魔晶","风之魔晶"}
bag_list = list(bag)
index = 0
while index < len(bag_list):
    print(f"第{index + 1}块碎片是:{bag_list[index]}")
    index += 1

对代码进行运行测试: