字典(dict)
1.什么是字典落蝙?
容器型數(shù)據(jù)類(lèi)型(序列)
特點(diǎn):可變(支持增刪改),無(wú)序的(不支持下表操作)
2.字典中的元素
元素都是鍵值對(duì)
字典儲(chǔ)存數(shù)據(jù)主要是為了存值记劝,鍵只是為了區(qū)分不同的值而存在的
鍵值對(duì)中的鍵 -- 不可變婿禽,唯一的寺渗。 --- 可用數(shù)字,字符串疼进,字典薪缆。列表可變則不行
鍵值對(duì)中的值 -- 和列表元素一樣,任何數(shù)據(jù)都可以作為值
備注:如果同一個(gè)鍵被賦值兩次伞广,后面的值會(huì)被記住
3.字典的增刪查改
1)查
a. 獲取單個(gè)元素的值
字典[key] -- 獲取字典中指定key對(duì)應(yīng)的值拣帽,如果key值不存在會(huì)報(bào)錯(cuò)
字典.get(key)
字典.get(key,默認(rèn)值) -- 當(dāng)key不存在則不會(huì)報(bào)錯(cuò),返回None赔癌。如果設(shè)置了默認(rèn)值就返回默認(rèn)值
b.遍歷
dog = {}
for i in dog:
print(i, dog[i]) -- 拿到鍵值
for value in dog.values():
print(i) -- 直接拿值
for key,value in dog.items():
print(key,value) --- 同時(shí)拿到鍵和值
備注:后面的這兩個(gè)是比較浪費(fèi)內(nèi)存和cpu的诞外,所以建議使用上面的
dict1 = {'a':10,'b':20,'c':30}
q = dict1((dict1[key], key)for key in dict1)
print(q)
2)增,改
增 -- 添加鍵值對(duì)灾票;改 -- 修改字典中峡谊,某個(gè)key對(duì)應(yīng)的值
語(yǔ)法:字典[key] = 值 -- 值不存在就向里面加值,當(dāng)key存在就修改字典中key對(duì)應(yīng)的值
3)刪 -- 沒(méi)有remove
a.del 字典[key] -- 刪除指定key對(duì)應(yīng)的值
b.字典.pop(key) -- 取出字典中key對(duì)應(yīng)的值刊苍,返回取出后字典中的剩余值
4.字典的相關(guān)操作以及運(yùn)算
1)字典不支持 +既们,*,>正什,<啥纸,>=,<=
2)相關(guān)操作:in 和 not in 和 max() sum() len()
key in 字典 -- 判斷字典中是否存在某個(gè)鍵
key not in 字典 -- 判斷字典中是否不存在某個(gè)鍵
只針對(duì)key的操作:
max() -- 比較字典中的鍵的大杏さ(Ascll字符比較)
sum() -- 只針對(duì)鍵是數(shù)字的字典
len() -- 計(jì)算鍵的總數(shù)
list() -- 轉(zhuǎn)換成列表斯棒,只是把key轉(zhuǎn)換成字典
3)dict(數(shù)據(jù)) -- 將指定數(shù)據(jù)轉(zhuǎn)換成字典
數(shù)據(jù)要求:a.數(shù)據(jù)本身是一個(gè)序列 b. 系列中的元素必須是有且只有兩個(gè)元素的小序列。
print(dict([[1,2],(2,3),'ab'])) -- 備注:里面就是一個(gè)列表對(duì)象再包含3個(gè)對(duì)象
4)dict.fromkeys(序列主经,default = None) -- 創(chuàng)一個(gè)新的字典荣暮,將序列中的元素作為字典的key,將default作為每個(gè)key對(duì)應(yīng)的值
new_dict = dict.fromkeys('abc')
print(new_dict) --- {a:None,b:None,c:None}
5)字典.items() -- 將字典中的鍵值對(duì)轉(zhuǎn)換成元組作為容器中的元素
備注:與dict(數(shù)據(jù)) -- 相反
6)字典.update(列表罩驻,元組穗酥,字典等) --- 即添加序列
集合(set)
集合是容器型數(shù)據(jù)類(lèi)型(序列),將{ }作為容器的標(biāo)志,多個(gè)元素用逗號(hào)隔開(kāi)
特點(diǎn):可變(增刪)砾跃,無(wú)序(不支持下標(biāo)操作)-- 元素不可變骏啰,集合可以變
{ } -- 表示空字典
{1,3抽高,100}
1)元素 - 不可變的數(shù)據(jù)判耕;同一個(gè)元素只能有一個(gè)(唯一性)
集合自帶去重功能:
set1 = {1,2,3,1,2}
print(set1) -- {1,2,3}
scores = {12,23,45,23,45,67}
scores = list(set(scores))
print(scores)
2)集合元素的增刪改查
a. 查 - 查只支持遍歷,不能單獨(dú)獲取具體某一個(gè)元素(本質(zhì)是通過(guò)下標(biāo)來(lái)遍歷厨内,內(nèi)部進(jìn)行)
注意:遍歷后的數(shù)據(jù)順序可能會(huì)不一樣
b. 增:
集合.add(元素) -- 在集合中添加一個(gè)元素
集合.update(序列) -- 將序列中所有的元素添加到集合里面
列表 元組祈秕,字典,字符串等雏胃。请毛。。
c.改(集合不支持改的操作)
3)集合的相關(guān)操作:
a. 求并集:集合1 | 集合2 -- 將兩個(gè)集合合并瞭亮,并去重
b. 求交集:集合1 & 集合2 -- 獲取兩個(gè)集合的公共元素
c. 求差集:集合1 - 集合2 -- 獲取集合1中除了集合2中與集合1內(nèi)相同的元素方仿,剩下的部分
d. 對(duì)稱(chēng)差集:集合1 ^ 集合2 -- 兩個(gè)集合除了公共部分剩下的部分
e. 集合1 > 集合2 -- 判斷集合1是否包含集合2
f. 集合1 < 集合2 -- 判斷集合2 是否包含集合1