字典是容器型資料型別;將{}作為容器的標誌,裡面多個元素(元素是鍵值對)用逗號隔開:
字典的元素:必須是鍵值對;
鍵 - 必須是不可變資料,一般用字串。(功能是對值進行說明)
值 - 任何型別的資料都可以,可以重複。(值才是字典真正的想要儲存的資料)
字典是可變的(支援增刪改);字典是無序的(不支援下標)
空字典:
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從集合中移除出去,如果元...