day 字典和集合的詳解

2021-10-12 06:53:45 字數 4512 閱讀 2411

​ 字典是容器型資料型別;將{}作為容器的標誌,裡面多個元素(元素是鍵值對)用逗號隔開:

​ 字典的元素:必須是鍵值對;

鍵 - 必須是不可變資料,一般用字串。(功能是對值進行說明)

值 - 任何型別的資料都可以,可以重複。(值才是字典真正的想要儲存的資料)

字典是可變的(支援增刪改);字典是無序的(不支援下標)

​ 空字典:

d1 =

print

(type

(d1)

)#

鍵不可變

鍵是唯一的

字典的增刪改查

1.查 - 獲取字典的值

1)查單個值

字典[key] - 獲取字典中指定key對應的值;如果key不存在會報錯

字典.get(key) - 獲取字典中指定key對應的值,如果key不存在不會報錯,把none返回

字典.get(key,預設值) - 獲取字典中指定key對應的值,如果key不存在不會報錯,把預設值返回

dog =

print

(dog[

'name'])

# 小白

# print(dog['height']) # 會報錯

print

(dog.get(

'name'))

# 小白

print

(dog.get(

'height'))

# none

print

(dog.get(

'height',0

))# 0

2)遍歷

for 變數 in 字典:

迴圈體注意:變數取到的是字典的每個key

for x in dog:

print

('x'

, x, dog[x]

)

練習:

1)統計班級中不及格學生的人數

2)計算所有學生的平均分

classes =[,

,,,,

]q =

0sums =

0for x in classes:

if x[

'score'

]<60:

q +=

1 sums += x[

'score'

]print

('不及格人數是{},平均分是{}'

.format

(q, sums /

len(classes)

))

2.增/改 - 新增鍵值對/修改鍵對應的值

1)字典[key] = 值 - 如果key不存在就是新增key值;如果key存在就是修改指定key對應的值。

dogs =

print

(dogs)

# 增加

dogs[

'height']=

100print

(dogs)

2)字典.setdefault(key,value) - 新增鍵值對
dogs.setdefault('age', 18)

print(dogs)

dogs.setdefault('name', '小黑') # 存在就不改,不新增

3.刪 - 刪除鍵值對

1)del字典[key] - 刪除指定key對應的鍵值對

del dogs[

'age'

]print

(dogs)

2)字典.pop(key) - 取出指定key對應的值,並且返回key對應的值
dogs.pop(

'height'

)print

(dogs)

字典的相關操作

1.運算子

字典不支援+、-、*、>、<、>=、<=,只支援==和!=

2.in和not in

key in 字典 - 判斷字典中是否存在指定的key

3.相關函式

(了解)sum,max,min,sorted - 針對的操作物件是字典的key

1) lem(字典) - 獲取字典中鍵值對的個數

2)dict(資料) - 將指定資料轉換成字典

資料 - a.資料本身是序列 b.序列中的每乙個元素是小序列c.小序列中元素的個數是2 d.小序列的第乙個元素不可變

字典轉列表 - 將字典的key作為列表元素(元組也是一樣的)

字典的相關方法

1.字典.clear() - 清空字典

2.字典.copy() - 賦值字典產生乙個一模一樣的新字典並返回

3.dict.fromkeys(序列,值) - 建立乙個新字典,

將序列中元素作為字典的key,每個key對應的值就是指定值

d1 =

dict

.fromkeys(

'abc'

,100

)print

(d1)

#

4.字典.items() - 同時獲取字典的key和value,將字典轉換成乙個序列,

序列中的元素是每個鍵值對對應的小序列

dog =

print

(dog.items())

# dict_items([('name', '小白'), ('***', '母'), ('color', '黃色')])

遍歷字典的時候同時獲取鍵和值
for k, v in dog.items():

print

(k, v)

練習:通過列表推導式交換乙個字典得key和value的位置
new_dog =

[(v, k)

for k, v in dog.items()]

print

(dict

(new_dog))#

new_dog2 =

[(dog[k]

, k)

for k in dog]

print

(new_dog2)

5.字典.keys() - 獲取字典所有的key

6.字典.values() - 獲取字典所有的值(返回乙個序列)

7.字典.update(序列) - 將序列中所有的元素以鍵值對的形式新增到字典,序列:必須是可以轉換成字典的序列

dog.update(new_dog2)

print

(dog)

#

1.什麼是集合

容器:將{}作為容器的標誌,多個元素用逗號隔開:

元素:不可變的,唯一的 (集合自帶去重)

可變的:無序的

1)空集合 set()

{}是空字典

s1 =

set(

)print

(type

(s1)

,len

(s1)

)# 0

2)集合元素不可變

3)集合元素是唯一的

2.數學集合運算:並集(|),交集(&),差集(-),對稱差集(^),子集(>=),真子集(>)

1)並集 - a和b的並集是將a和b的元素放到一起構成的新集合

a =

b =c = a | b

print

(c)#

2)a和b的交集,寫作a&b,是既屬於a的、又屬於b的所有元素組成的集合
c = a & b

print

(c)#

3)差集 - 兩個集合可以相』減』,寫作b-a,是屬於b的、但不輸入a的所有元素組成的集合。

c = a - b

print

(c)#

c = b - a

print

(c)#

4)對稱差集 - 在集合a和集合b中,只包含在a中和只包含在b中的元素的集合
c = a ^ b

print

(c)#

5)子集  >=  判斷是否是子集; > 判斷是否是真子集
a =

b =c =

print

(a >= c)

# true

print

(a > c)

# true

Day9 字典和集合

集合 去重,和並交集運算 初級課程總結 集合推導式 簡易版購物車 作業列表套字典必須熟練掌握,用於web開發 d1 d2 d3 dict d3 dict a 3,b 4 d2 name 如果指定鍵不存在,會報錯 d2 age 16 d2.get name 1 如果指定鍵不存在,不會報錯。返回1,如果...

字典和集合

字典 dict 字典 dict是一種無序的可變容器,序列的索引對它失效,它的索引是自定義的 形式 d d d dict a 1,b 2 d dict name libai age 30 d dict.fromkeys 迭代物件 將乙個迭代物件的每個元素作為鍵,值預設全部為none 字典方法 例 d ...

集合和字典

二 字典 dictionary 定義 1.建立格式 par 或者set value 向集合中新增元素 s.add a a 如果a已經存在,不進行任何操作 或者s.update a a可以是列表,元組,字典等。a 可以是多個,用逗號隔開。2.移除元素 s.remove a 將a從集合中移除出去,如果元...