python中的集合
目录
初识集合
集合的含义
集合的作用
集合的使用场景
集合的定义
集合的常用操作
元素的增加
函数add()
元素的删除
函数remove()
函数clear()
函数pop()
集合的遍历
for循环
while循环
初识集合
集合的含义
在pyrhon中,集合是一种内置的数据结构,用于存储无序、唯一的元素。
无序:在集合中的元素没有固定顺序。
唯一:集合中的元素不重复。
集合的作用
去重 | 从列表中移除重复的元素 |
查找效率高 | 判断指定元素是否存在 |
集合运算 | 交集、并集等操作 |
关系判断 | 判断集合包含关系 |
集合的使用场景
列表去重、判断元素是否存在、集合运算、判断子集及超集。
集合的定义
由{}包裹的元素组成的序列,且元素可以是不同的数据类型。
语法结构:
集合名 = {元素1,元素2,元素3,......}
#以下都是集合 my_set = {'ele1','ele2','ele3'} my_set2 = {1,2,3} my_set3 = {True,True,False} my_set4 = {'ele1',4,False}
集合的常用操作
清晨,阳光洒落在村庄的青石小路上,你,小小勇者,背起剑与行囊,准备出发完成今日的冒险任务——收集魔晶碎片。据说魔晶碎片分布在森林、湖边和山洞之中,只有集齐五种不同的碎片,才能解锁古代祭坛的大门。
元素的增加
函数add()
功能:向集合中添加一个新元素,如果元素已存在,则不会重复添加,不能添加列表、字典。
语法结构:集合.add(元素)
第一站:森林深处——收集开始
森林中迷雾缭绕,勇者击败了几只树灵,捡到了两枚发着绿光的碎片---翠绿魔晶。你兴奋地拿出背包里的碎片收集袋,却发现无论再怎么捡“翠绿魔晶”,袋子里也只有一块,可能是其中一块魔晶将另一块吸收了;接着,你又从一棵大树下的藤蔓中发现了另一块“幽紫魔晶”:
bag = set() #集合内的元素不重复 bag.add("翠绿魔晶") bag.add("翠绿魔晶") # 重复添加也不会重复存在 bag.add("幽紫魔晶") print(bag)
对代码进行运行测试:
元素的删除
函数remove()
功能:删除集合中的指定元素,若元素不存在,会报错KeyError。
语法结构:集合.remove(元素)
第二站:湖边陷阱——移除错误碎片
湖边,你见一块晶石泛着蓝光,以为是“冰蓝魔晶”,便将其收集起来,但刚准备离开,巡湖的老猎人提醒你:“那不是魔晶,是鱼人的水晶诱饵,带着它会吸引危险。”你连忙取出袋子,小心翼翼地将其移除:
bag = {'幽紫魔晶', '翠绿魔晶'} bag.add("湖边碎片") print(f"捡起后背包内的魔晶碎片有{bag}") bag.remove("湖边碎片") print(f"扔掉后背包内的魔晶碎片有{bag}")
对代码进行运行测试:
函数clear()
功能:移除集合中所有元素,使集合变为空集合。
语法结构:集合.clear()
第三站:山洞探险——清空重来
你继续前往山洞,却在一场地震中摔了跤,袋子掉进泥水中。碎片沾满污泥、失去了能量。
你叹了口气,只能清空收集袋,准备重新收集。“这次我得更小心了。”你拍拍身上的泥,继续前行。
bag = {'幽紫魔晶', '翠绿魔晶'} bag.clear() print(f"摔跤后你手中的魔晶碎片还剩:{bag}")
对代码进行运行测试:
函数pop()
功能:由于集合是无序的,pop()函数会随机删除并返回集合中的某个元素,若集合为空,会报错KeyError。
语法结构:集合.pop()
第四站:魔晶之心——火焰魔晶的试炼
在经历了数次挑战之后,你终于集齐了四块较为常见的魔晶碎片:翠绿魔晶、幽紫魔晶、风之魔晶和光明魔晶。剩下的唯一缺少的碎片便是火焰魔晶,隐藏在烈焰之岛的火焰试炼中。在烈焰岛上,你必须通过重重火焰挑战才能接近魔晶。最后,你面对火焰漩涡中的火焰魔晶,火焰之神告诉他:要想获得火焰魔晶,就必须放弃一块已有的魔晶。你毫不犹豫地选择献祭自己最珍贵的一块魔晶:
bag = {"翠绿魔晶","幽紫魔晶","风之魔晶","光明魔晶"} print(f'被你献祭的魔晶碎片是:{bag.pop()}')
对代码进行运行测试:
集合的遍历
for循环
第五站:地穴迷宫——整理收集情况
你在地穴中一路奋战,终于又重新收集到了五种魔晶碎片。你点燃火把,开始一个个检查,边走边数,确认每一块魔晶的种类和颜色,以免遗漏。
bag = {"翠绿魔晶","幽紫魔晶","光明魔晶","火焰魔晶","风之魔晶"} for mojing in bag:print(f"收集到:{mojing}")
对代码进行运行测试:
while循环
第五站:古代祭坛——等待封印解除
最后,你抵达神秘的古代祭坛,将碎片一一放入祭坛的五个凹槽,但祭坛没有立刻反应。你决定重新检查一下每个碎片的位置,确保没有错漏,于是开始逐个核对:
bag = {"翠绿魔晶","幽紫魔晶","光明魔晶","火焰魔晶","风之魔晶"} bag_list = list(bag) index = 0 while index < len(bag_list):print(f"第{index + 1}块碎片是:{bag_list[index]}")index += 1
对代码进行运行测试: