set集合
基本文法:
# 定義集合字面量
(元素,元素,……元素)
# 定義集合變量
變量名稱 = (元素,元素,……元素)
# 定義空集合
變量名稱 = set()
清單使用 []
元組使用 ()
字元串使用 ""
集合使用 {}
集合的常用操作-修改
添加新元素
文法:集合.add(元素)
結果:集合本身被修改,添加了新元素
移除元素
文法:集合.remove(元素)
結果:集合本身被修改,移除了元素
從集合中随機取出元素
文法:集合.pop() 從集合中随機取出一個元素
結果:會得到一個元素的結果。同時集合本身被修改,元素被移除。
清空集合
文法:集合.clear()
取出2個集合的差集
文法:集合1.difference(集合2) 取出集合1和集合2的差集(集合1有而集合2沒有的)
結果:得到一個新集合,集合1和集合2不變
消除2個集合的差集
文法:集合1.difference_update(集合2)
功能:對比集合1和集合2,在集合1内,删除和集合2相同的元素
結果:集合1被修改,集合2不變
2個集合合并
文法:集合1.union(集合2)
功能:将集合1和集合2組合成新集合
結果:得到新集合,集合1和集合2不變
統計集合元素數量
文法:len(集合)
集合的特點:
- 可以容納多個資料
- 可以容納不同類型的資料
- 資料是無序存儲的(不支援下标索引)
- 不允許重複資料存在
- 可以修改
- 支援for循環
練習:資訊去重
有如下清單對象:
my_list=['暮霞如煙','念兮','程式員','念兮','程式員','python','best','beautiful','python']
請:
1.定義一個空集合
2.通過for循環周遊清單
3.在for循環中将清單的元素添加至集合
4.最終得到元素去重後的集合對象,并列印輸出
# 定義一個清單
my_list = ['暮霞如煙','念兮','程式員','念兮','程式員','python','best','beautiful','python']
print(f"清單:{my_list}")
# 定義一個空集合
my_set = set()
for element in my_list:
my_set.add(element)
print(f"存入集合後結果:{my_set}")
運作:
dict字典
# 定義字典字面量
{key: value, key:value, ……,key:value}
# 定義字典變量
my_dict = {key: value, key:value, ……,key:value}
# 定義空字典
my_dict = {} #方式1
my_dict = dict{} #方式2
字典資料的擷取
同集合一樣,不可以使用下标索引
文法:字典[key]可以取到對應的value
字典的key和value可以是任意資料類型(key不可為字典)
字典常用操作
新增元素
文法:字典[Key]=Value 結果:字典被修改,新增了元素
更新元素
文法:字典[Key]=Value 結果:字典被修改,元素被更新
注意:字典Key不可以重複,是以對已存在的Key執行上述操作,就是更新Value值
删除元素
文法:字典.pop(Key) 結果:獲得指定Key的Value,同時字典被修改,指定Key的資料被删除
清空字典
文法:字典.clear() 結果:字典被修改,元素被清空
擷取全部的Key
文法:字典.keys() 結果:得到字典中的全部Key
統計字典内元素數量
文法:len(字典)
練習:升職加薪
有如下員工資訊,請使用字典完成資料的記錄。
并通過for循環,對所有級别為1級的員工,級别上升1級,薪水增加1000元
姓名 | 部門 | 工資 | 級别 |
小蘭花 | 科技部 | 3000 | 1 |
東方青蒼 | 市場部 | 5000 | 2 |
長珩 | 市場部 | 7000 | 3 |
赤地女子 | 科技部 | 4000 | 1 |
榮昊 | 市場部 | 6000 | 2 |
# 用字典完成資料的記錄
staff_dict = {
'小蘭花':{
'部門':'科技部',
'工資': 3000,
'級别': 1
},
'東方青蒼':{
'部門':'市場部',
'工資': 5000,
'級别': 2
},
'長珩':{
'部門':'市場部',
'工資': 7000,
'級别': 3
},
'赤地女子':{
'部門':'科技部',
'工資': 4000,
'級别': 1
},
'榮昊':{
'部門':'市場部',
'工資': 6000,
'級别': 2
}
}
print(f"全體員工目前資訊如下:{staff_dict}")
# for循環周遊字典
keys = staff_dict.keys()
for name in keys:
level = staff_dict[name]['級别']
if level == 1:
# 升職加薪操作
staff_dict[name]['級别'] = 2 #級别+1
staff_dict[name]['工資'] += 1000 #工資+1000
print(f"全體員工級别為1的員工完成升值加薪操作,操作後:{staff_dict}")
運作:
資料容器小總結
清單 | 元組 | 字元串 | 集合 | 字典 | |
元素數量 | 支援多個 | 支援多個 | 支援多個 | 支援多個 | 支援多個 |
元素類型 | 任意 | 任意 | 僅字元 | 任意 | Key:Value Key:除字典外任意類型 Value:任意類型 |
下标索引 | 支援 | 支援 | 支援 | 不支援 | 不支援 |
重複元素 | 支援 | 支援 | 支援 | 不支援 | 不支援 |
可修改性 | 支援 | 不支援 | 不支援 | 支援 | 支援 |
資料有序 | 是 | 是 | 是 | 否 | 否 |
使用場景 | 可修改,可重複的一批資料記錄場景 | 不可記錄,可重複的一批資料記錄場景 | 一串字元的記錄場景 | 不可重複的資料記錄場景 | 以Key檢索Value的資料記錄場景 |
資料容器通用功能
周遊 通用for循環
len(容器) 元素個數
max(容器) 最大元素
min(容器) 最小元素
list(容器) 将給定容器轉換為清單
str(容器) 将給定容器轉換為字元串
tuple(容器) 将給定容器轉換為元組
set(容器) 将給定容器轉換為集合
sorted(容器,[reverse=True]) 将給定容器進行排序(reverse=True表示降序)