目錄
初識集合
集合的含義
集合的作用
集合的使用場景
集合的定義
集合的常用操作
元素的增加
函數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
對代碼進行運行測試: