国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】一文帶你掌握數(shù)據(jù)容器之集合,字典

這篇具有很好參考價值的文章主要介紹了【Python】一文帶你掌握數(shù)據(jù)容器之集合,字典。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄:

一、集合

思考:我們目前接觸到了列表、元組、字符串三個數(shù)據(jù)容器了。基本滿足大多數(shù)的使用場景為何又需要學習新的集合類型呢?

通過特性來分析:
(1)列表可修改、支持重復元素且有序
(2)元組、字符串不可修改、支持重復元素且有序

大家有沒有看出一些局限?

局限就在于:它們都支持重復元素

如果場景需要對內(nèi)容做去重處理,列表、元組、字符串就不方便了

而集合,最主要的特點就是:不支持元組的重復(自帶去重功能)、并且內(nèi)容無序


1.集合的定義

基本語法:

# 定義集合字面量
{元素,元素,......,元素}

# 定義集合變量
變量名稱 = {元素,元素,......,元素}

# 定義空集合
變量名稱 = set()

?和列表、元組、字符串等定義基本相同:

列表使用[? ]

元組使用( )

字符串使用"? "

集合使用{? }


?2.集合的常用操作

首先,因為集合是無序的,所以集合不支持:下標索引訪問但是集合和列表一樣,是允許修改的,所以我們來看看集合的修改方法

編號 操作 作用
1 集合.add(元素) 集合內(nèi)添加一個元素
2 集合remove(元素) 移除集合內(nèi)指定的元素
3 集合.pop() 從集合中隨機取出一個元素
4 集合.clear() 將集合清空
5 集合1.difference(集合2) 得到一個新集合,內(nèi)含2個集合的差集原有的2個集合內(nèi)容不變
6 集合1.differenceupdate(集合2) 在集合1中,刪除集合2中存在的元素集合1被修改,集合2不變
7 集合1.union(集合2) 得到1個新集合,內(nèi)含2個集合的全部元素原有的2個集合內(nèi)容不變
8 len(集合) 得到一個整數(shù),記錄了集合的元素數(shù)量
(1)添加新元素

語法:集合.add(元素)將指定元素,添加到集合內(nèi)

結(jié)果:集合本身被修改,添加了新元素

my_set = {"Hello", "World"}
my_set.add("bite")
print(my_set)  # 結(jié)果:{'World', 'bite', 'Hello'}(順序可能會變)
(2)?移除元素

語法:集合.remove(元素),將指定元素,從集合內(nèi)移除

結(jié)果:集合本身被修改,移除了元素

my_set = {"Hello", "World"}
my_set.remove("World")
print(my_set)  # 結(jié)果:{'Hello'}
?(3)?從集合中隨機取出元素

語法:集合.pop(),功能,從集合中隨機取出一個元素

結(jié)果:會得到一個元素的結(jié)果。同時集合本身被修改,元素被移除

my_set = {"Hello", "World"}
element = my_set.pop()
print(my_set)  # 結(jié)果:{'Hello'}
print(element)  # 結(jié)果:World
(4)?清空集合

語法:集合.clear(),功能,清空集合

結(jié)果:集合本身被清空

my_set = {"Hello", "World"}
my_set.clear()
print(my_set)  # 結(jié)果:set()
?(5)取出2個集合的差集

語法:集合1.difference(集合2),功能: 取出集合1和集合2的差集 (集合1有而集合2沒有的)

結(jié)果:得到一個新集合,集合1和集合2不變

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)
print(set3)  # 結(jié)果:{2, 3}
print(set2)  # 結(jié)果:{1, 5, 6}
print(set1)  # 結(jié)果:{1, 2, 3}
(6)?消除2個集合的差集

語法:集合1.difference_update(集合2)

功能:對比集合1和集合2,在集合1內(nèi),刪除和集合2相同的元素

結(jié)果:集合1被修改,集合2不變

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set1.difference_update(set2)
print(set1)  # 結(jié)果:{2, 3}
print(set2)  # 結(jié)果:{1, 5, 6}
(7) 2個集合合并

語法:集合1.union(集合2)

功能:將集合1和集合2組合成新集合

結(jié)果: 得到新集合,集合1和集合2不變

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.union(set2)
print(set3)  # 結(jié)果:{1, 2, 3, 5, 6}
print(set1)  # 結(jié)果:{1, 2, 3}
print(set2)  # 結(jié)果:{1, 5, 6}

二、字典

思考:老師有一份名單,記錄了學生的姓名和考試總成績,現(xiàn)在需要將其通過Python錄入至程序中,并可以通過學生姓名檢索學生的成績,由此引入了字典,使用字典可以用key取出 Value的操作

1.字典的定義

字典的定義,同樣使用{ },不過存儲的元素是一個個的 : 鍵值對,如下語法:

# 定義字典字面量
{key: value, key: value, ......, key: value}

# 定義字典變量
 my_dict = {key: value, key: value, ......, key: valuel}

# 定義空字典
my_dict = {}    # 空字典定義方式1
my_dict = dict()  # 空字典定義方式2

注意:?字典內(nèi)Key不允許重復,重復添加等同于覆蓋原有數(shù)據(jù)

# 定義重復Key的宇典
my_dict1 = {"王力鴻": 99,"王力鴻": 88,"林俊節(jié)": 77}
print(f"重復key的字典的內(nèi)容是:{my_dict1}")

# 結(jié)果:重復key的字典的內(nèi)容是:{'王力鴻':88,林俊節(jié)':77}

2.字典數(shù)據(jù)的獲取

字典同集合一樣,不可以使用下標索升

但是字典可以通過Key值來取得對應的Value

# 語法,字典[Key]可以取到對應的value
stu_score = {"李四": 99, "張三": 88,"王二麻子": 77}
print(stu_score["李四"])   # 結(jié)果:99
print(stu_score["張三"])   # 結(jié)果:88
print(stu_score["王二麻子"])  # 結(jié)果:77

3.字典的嵌套

字典的Key和Value可以是任意數(shù)據(jù)類型(Key不可為字典)

那么,就表明,字典是可以嵌套的

需求如下: 記錄學生各科的考試信息

【Python】一文帶你掌握數(shù)據(jù)容器之集合,字典,Python,python,開發(fā)語言

stu_score_dict = {
    "王力鴻": {
        "語文": 77,
        "數(shù)學": 66,
        "英語": 33
    }, "周杰輪": {
        "語文": 88,
        "數(shù)學": 86,
        "英語": 55
    }, "林俊節(jié)": {
        "語文": 99,
        "數(shù)學": 96,
        "英語": 66
    }
}
print(f"學生的考試信息是:{stu_score_dict}")

# 結(jié)果:學生的考試信息是:{'王力鴻': {'語文': 77, '數(shù)學': 66, '英語': 33}, '周杰輪': {'語文': 88, '數(shù)學': 86, '英語': 55}, '林俊節(jié)': {'語文': 99, '數(shù)學': 96, '英語': 66}}

從嵌套字典中獲取數(shù)據(jù):

score = stu_score_dict["周杰輪"]["語文"]
print(f"周杰輪的語文分數(shù)是:{score}")

# 結(jié)果:周杰輪的語文分數(shù)是:88

4.字典的常用操作

編號 操作 作用
1 字典[Key] 獲取指定Key對應的Value值
2 字典[Key]= Value 添加或更新鍵值對
3 字典.pop(Key) 取出Key對應的Value并在字典內(nèi)刪除此Key的鍵值對
4 字典.clear() 清空字典
5 字典.keys() 獲取字典的全部Key,可用于for循環(huán)遍歷字典
6 len(字典) 計算字典內(nèi)的元素數(shù)量
(1)新增元素

語法:字典[Key] =Value,結(jié)果:字典被修改,新增了元素

my_dict1 = {"王力鴻": 88, "林俊節(jié)": 77}
# 新增,張學油的考試成績
my_dict1['張學油'] = 66
print(my_dict1)

# 結(jié)果:{'王力鴻': 88, '林俊節(jié)': 77, '張學油': 66}
(2)更新元素

語法:字典[Key]=Value,結(jié)果:字典被修改,元素被更新

注意: 字典Key不可以重復,所以對已存在的Key執(zhí)行上述操作,就是更新Value值

my_dict1 = {"王力鴻": 88, "林俊節(jié)": 77}
my_dict1['王力鴻'] = 66
print(my_dict1)

# 結(jié)果:{'王力鴻': 66, '林俊節(jié)': 77}
(3)刪除元素

語法: 字典.pop(Key),結(jié)果:獲得指定Key的Value,同時字典被修改,指定Key的數(shù)據(jù)被刪除

my_dict1 = {"王力鴻": 88, "林俊節(jié)": 77}
value = my_dict1.pop("王力鴻")
print(value)   # 結(jié)果:88
print(my_dict1)  # 結(jié)果:{'林俊節(jié)': 77}
(4)清空字典

語法:字典.clear(),結(jié)果:字典被修改,元素被清空

my_dict1 = {"王力鴻": 88, "林俊節(jié)": 77}
my_dict1.clear()
print(my_dict1)

# 結(jié)果:{}
(5)獲取字典的全部Key

語法:字典.keys(),可用于for循環(huán)遍歷字典

# 獲取全部的key
my_dict = {"周杰輪": 99, "王力鴻": 88, "林俊節(jié)": 77}
keys = my_dict.keys()
print(f"字典的全部keys是:{keys}")  # 結(jié)果:字典的全部keys是:dict_keys(['周杰輪', '王力鴻', '林俊節(jié)'])

# 遍歷字典
# 方式一:通過獲取到全部的key來完成遍歷
for key in keys:
    print(f"字典的key是:{key}")
    print(f"字典的value是: {my_dict[key]}")

# 方式二:直接對字典進行for循環(huán),每一次循環(huán)都是直接得到key
for key in my_dict:
    print(f"字典的key是:{key}")
    print(f"字典的value是: {my_dict[key]}")

5.字典的特點

經(jīng)過上述對字典的學習,可以總結(jié)出字典有如下特點:

(1)可以容納多個數(shù)據(jù)

(2)可以容納不同類型的數(shù)據(jù)

(3)每一份數(shù)據(jù)是KeyValue鍵值對

(4)可以通過Key獲取到Value,Key不可重復 (重復會覆蓋)

(5)不支持下標索引

(6)可以修改(增加或刪除更新元素等)

(7)支持for循環(huán),不支持while循環(huán)


本次內(nèi)容就到此啦,歡迎評論區(qū)或者私信交流,覺得筆者寫的還可以,或者自己有些許收獲的,麻煩鐵汁們動動小手,給俺來個一鍵三連,萬分感謝 !??

【Python】一文帶你掌握數(shù)據(jù)容器之集合,字典,Python,python,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-752536.html

到了這里,關于【Python】一文帶你掌握數(shù)據(jù)容器之集合,字典的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包