字典概述
1. 概述
字典本質上也是乙個集合,是乙個無序的集合,儲存的時候以鍵值對(key-value)的方式來進行儲存。它具有極快的查詢速度
2. key的特性
字典中的key必須是唯一的
key必須是不可變物件
不可變物件:str,number,bool,none,tuple
可變物件:list,dict,set
3. 字典的建立
字典的建立語法如下:
dict1 =
建立乙個成績字典如下:
scoredict =
print
(scoredict)
#
字典操作
1. 訪問元素
dict1[key]
dict1.get(key)
使用上面兩種方式都可以訪問元素,使用get方法獲取的時候,若key存在則返回value的值,當key不存在則返回none,不會報錯;若使用key直接獲取,當key不存在的時候會報錯,如下:
scoredict =
print
(scoredict.get(
"王二"))
print
(scoredict.get(
"王三"))
print
(scoredict[
"王二"
])
執行結果如下:
20
none
20
2. 新增元素/更改元素dict1[key]
= value
注意:字典中key不能重複,乙個key只能對應乙個value,多次對乙個key的value賦值,後面的值會把前面的值覆蓋掉
scoredict =
scoredict[
"韓梅梅"]=
90print
(scoredict)
scoredict[
"張三"]=
75print
(scoredict)
執行結果如下:
3. 刪除元素dict1.pop(key)
根據key刪除對應的鍵值對,並且將對應的value值返回
scoredict =
print
(scoredict.pop(
"麻子"))
print
(scoredict)
執行結果如下:
67
字典的遍歷
這裡可以使用for迴圈來進行字典的遍歷
1. 獲取key鍵
#方法一:
for key in dict1:
print
(key)
#方法二:
for key in dict1.keys(
)print
(key)
2. 獲取value值for value in dist1.values():
print
(value)
3. 同時獲取鍵和值for key,value in dict1.items():
print
(key,value)
注意:字典是無序的,在記憶體中儲存是無序的,因此無法通過下標來獲取值
scoredict =
print
("通過獲取key鍵遍歷字典:"
)for key in scoredict:
print
("%s:%d"
%(key,scoredict[key]
),end=
" ")
print()
print
("通過同時獲取鍵和值遍歷字典:"
)for key,value in scoredict.items():
print
("%s:%d"
%(key,value)
,end=
" ")
執行結果如下:
通過獲取key鍵遍歷字典:
張三:89 李四:
80 王二:
20 麻子:
67 通過同時獲取鍵和值遍歷字典:
張三:89 李四:
80 王二:
20 麻子:
67
dict與list的區別
1. 儲存方式
字典儲存的時候以鍵值對的方式儲存,列表相當於只儲存了字典中的key或value部分
2. 占用空間
dict需要占用大量的記憶體,記憶體浪費多,而list只相當於儲存了字典的key或者value部分,並且資料是緊密排列的
3. 查詢速度
dict的查詢和插入的速度極快,不會隨著key-value的增加而變慢,但是list在查詢的時候需要從頭向後挨個遍歷元素,並且當資料量增大的時候,速度也會隨著變慢
Python基礎 字典dict
字典建立的幾種方式 直接建立 dict name 通過dict函式建立 dict name dict key1 value1,key2 value2,key3 value3 列表轉化成字典示例 li 11,22,33 d dict enumerate li 字典物件內建方法 方法含義 get key...
Python基礎之字典dict
字典的特性,鍵值對出現 字典的定義 字典的key不可重複,如果key重複的話,預設最後乙個元素新增到字典中,多個元素之間用逗號分割。字典是無序的 定義乙個字典 例 dic 字典的常用方法 fromkeys 引數是乙個可迭代型別,把每乙個迭代物件變成字典的key,value預設為none 可以修改 例...
python基礎之字典 dict
字典 dict 是一種key value 字典是無序的,不能像str list 一樣 通過index查詢資料 字典內可以迴圈巢狀list dict等 列表key是唯一的,值不限制 學號 姓名 info 新增 修改 info 004 1 查詢print info.get 001 通過key獲取valu...