1. 程式人生 > 其它 >python中字典(dict)的用法

python中字典(dict)的用法

技術標籤:pythonpython

系列文章目錄


前言

Python中字典(dict)的用法。

提示:以下是本篇文章正文內容,下面案例可供參考

一、字典(dict)的介紹

Python的字典資料型別是基於hash雜湊演算法實現的,採用鍵值對(key:value)的形式,根據key的值計算value的地址,具有非常快的查取和插入速度。它是一種可變物件,所以支援修改、插入、刪除等操作。

二、字典(dict)的建立

建立字典:
{}
{key1:value1, key2: value2}

dic = {}  # 建立空字典
print(dic)  # {}
print(type
(dic)) # <class 'dict'> information_Tom = {'address': 'london', 'age': 18, 'hobbit': ['play game', 'badminton']} print(type(information_Tom)) # <class 'dict'>' #注意: 字典中的value為任意型別,key只能是不可變資料型別 information_Tom = {'address': 'london', 'address': 'beijing'} print(information_Tom) # {'address'
: 'beijing'} 如果重複出現key值,將會覆蓋前者,保留後者 dic1 = dict() # 建立一個空字典 print(dic1) # {} dic2 = dict(name='Tom', age=18) # 利用 dict(**kwargs)建立字典 print(dic2) # {'name': 'Tom', 'age': 18} dic3 = dict([('name', 'Tom'), ('age', 18)]) # 利用dict(mapping)建立字典 print(dic3) # {'name': 'Tom', 'age': 18}

拓展:
map(func,*iterable):

將iterable裡面的元素逐個傳到func裡面做處理
zip(iter1[,iter2[…]]):
將iter1 iter2 中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。

li = list('1234')  # 將li中每個元素轉為int型別
print(list(map(int, li)))  # [1, 2, 3, 4] 將li中每個元素傳到int中,再返回

li_k = ['name', 'age']  # 目標:將li_k與li_v元素一一對應起來
li_v = ['Tom', 18]
print(dict(list(zip(li_k, li_v))))  # {'name': 'Tom', 'age': 18}一一對應,多餘元素不顯示

三、訪問字典(dict)

字典是集合型別,不是序列型別,因此沒有譜索引下標的概念,更沒有切片的說法。但是,與list類似,字典採用把相對應的鍵放入方括號內獲取對應值的方式取值。

dic1 = {'name': 'Tom', 'age':18}
# print(dic1[0])  # 報錯,dict是集合型別,沒有下標說法
print(dic1['name'])  # Tom 注意:當key值不存在時,會報錯

四、字典(dict)的增加與修改

增加就是往字典插入新的鍵值對。

dic1 = {'name': 'Tom', 'age':18}
dic1['address'] = 'london'  # 增加
print(dic1)  # {'name': 'Tom', 'age': 18, 'address': 'london'}

修改就是給原有的鍵賦予新的值。由於一個key只能對相應一個值,所以,多次對一個key賦值,後面的值會把前面的覆蓋掉。

dic1 = {'name': 'Tom', 'age':18}
dic1['age'] = 20  # 將原有的age=18 重新賦值為20
print(dic1)  # {'name': 'Tom', 'age': 20}

五、字典(dict)一系列刪除

刪除字典元素:del dic[exit_key] / dic.pop(exit_key)
刪除整合字典:del dic
清空整個字典:dic.clear()

dic1 = {'name': 'Tom', 'age': 18}
del dic1['name']
print(dic1)  # {'age': 18}
dic1 = {'name': 'Tom', 'age': 18}
dic1.pop('age')
print(dic1)  # {'name': 'Tom'}
dic1 = {'name': 'Tom', 'age': 18}

del dic1
print(dic1)  # 已經刪除,NameError: name 'dic1' is not defined
print(dic1.clear())  # None

六、字典(dict)的常見操作

d.get(k[,d])–>返回指定鍵的值,如果值不存在字典中,則返回default值

dic1 = {'name': 'Tom', 'age': 18}
print(dic1.get('age'))  # 18
print(dic1.get('address'))  # None  如果用[],則會報錯,使用get()返回none

d.items()–>以列表返回可遍歷的(鍵,值)元組對

dic1 = {'name': 'Tom', 'age': 18}
for key, value in dic1.items():
    print(key, value)  # name Tom  age 18

d.keys()–>以列表返回字典所有的鍵

dic1 = {'name': 'Tom', 'age': 18}
print(dic1.keys())  # dict_keys(['name', 'age'])

d.values–>以列表返回字典所有的值

dic1 = {'name': 'Tom', 'age': 18}
print(dic1.values())  # dict_values(['Tom', 18])

七、字典(dict)大作業

作業1

li1 = [‘name’, ‘author’, ‘introduce’]
li2 = [‘NORWEGIAN WOOD’, ‘Hatuki Murakami’, ‘babababab…’]
將li1與li2以鍵值對的形式呈現

li1 = ['name', 'author', 'introduce']
li2 = ['NORWEGIAN WOOD', 'Hatuki Murakami', 'babababab....']
print(dict(list(zip(li1, li2))))  # {'name': 'NORWEGIAN WOOD', 'author': 'Hatuki Murakami', 'introduce': 'babababab....'}


def f_map(key, value):
    return (key, value)


print(dict(map(f_map, li1, li2)))  # {'name': 'NORWEGIAN WOOD', 'author': 'Hatuki Murakami', 'introduce': 'babababab....'}

作業2

Amy_information = {'name': 'amy', 'addr': 'hunan', 'weight': 90}
print(Amy_information.keys())  # dict_keys(['name', 'addr', 'weight'])
print(Amy_information.values())  # dict_values(['amy', 'hunan', 90])