寫在前面
這是筆者的在python學習過程中的一些筆記,如有誤,還請諒解。
python學習心得(五)
資料結構之字典
一、字典的介紹
- 字典屬于一種新的資料結構,稱為映射(mapping)
- 字典的作用和清單類似,都是用來存儲對象的容器
- 清單存儲資料的性能很好,但是查詢資料的性能的很差
- 在字典中每一個元素都有一個唯一的名字(key),通過這個唯一的名字可以快速的查找到指定的元素
- 在查詢元素時,字典的效率是非常快的
-
在字典中可以儲存多個對象,每個對象都會有一個唯一的名字
這個唯一的名字,我們稱其為鍵(key),通過key可以快速的查詢value
這個對象,我們稱其為值(value)
是以字典,我們也稱為叫做鍵值對(key-value)結構
每個字典中都可以有多個鍵值對,而每一個鍵值對我們稱其為一項(item)
# 使用 {} 來建立字典
>>> d = {} # 建立了一個空字典
>>> print(d,type(d))
{} <class 'dict'>
二、字典的使用
- 利用{}建立字典,或者利用dict(k1=v1,k2=v2,k3=v3)建立
- 根據鍵(key)來擷取值(value),如果使用字典中不存在的鍵,會報出異常Key Error
- 字典的值可以是任意對象;字典的鍵可以是任意的不可變對象(int、str、bool、tuple …),但是一般我們都會使用str
- 字典的鍵是不能重複的,如果出現重複的後邊的會替換到前邊的’’’
>>> # 使用 {} 來建立字典
my_dict = {} #創立一個空字典
# 建立一個保護有資料的字典
>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male'
}
>>> print(my_dict['name'])
奕夕
>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male',
'name':'yixi'
}
>>> print(my_dict['name'])
yixi
- len()擷取字典長度
>>> len(my_dict) 3
- get(key[, default]) 該方法用來根據鍵來擷取字典中的值
>>> # 如果擷取的鍵在字典中不存在,會傳回None >>> # 也可以指定一個預設值,來作為第二個參數,這樣擷取不到值時将會傳回預設值 >>> print(my_dict.get('name')) yixi >>> print(my_dict.get('hello','預設值')) 預設值
- d[key] = value 如果key存在則覆寫,不存在則添加
>>> my_dict['name'] = 'GiHub' # 修改字典的key-value >>> my_dict['name'] 'GiHub' >>> my_dict['address'] = 'world' # 向字典中添加key-value >>> my_dict['address'] 'world'
- pop(key[, default])根據key删除字典中的key-value
>>> my_dict.pop('d')#删除不存在的鍵會報錯 Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> my_dict.pop('d') KeyError: 'd' >>> my_dict.pop('d','default')#而有預設值的情況下會傳回預設值 'default' # 根據key删除字典中的key-value # 會将被删除的value傳回!
- clear()清空字典
三、字典的周遊
利用for 循環進行字典的周遊:
- 通過周遊keys()來擷取所有的鍵
>>> for k in my_dict.keys() : print(k) name age gender
- 通過周遊values()來擷取所有的值:
>>> for v in my_dict.values():#此處my_dict被初始化過 print(v) 奕夕 18 male
- 通過周遊items()來擷取一個雙值子序列,其中包含了所有鍵值對:
>>> for k,v in my_dict.items(): print(k,v) name 奕夕 age 18 gender male