您好,登錄后才能下訂單哦!
這篇文章主要介紹python中的字典有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
dict Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值**(key-value)**存儲,具有極快的查找速度。
舉個例子,假設要根據同學的名字查找對應的成績,如果用list實現,需要兩個list:
names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85]
給定一個名字,要查找對應的成績,就先要在names中找到對應的位置,再從scores取出對應的成績,list越長,耗時越長。
如果用dict實現,只需要一個“名字”-“成績”的對照表,直接根據名字查找成績,無論這個表有多大,查找速度都不會變慢。用Python寫一個dict如下:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['Michael'] #輸出 95
如果定義時KEY重復,默認后面覆蓋前面
i = {"蘋果":50,"葡萄":30,"蘋果":40} print(i) #輸出 {'蘋果': 40, '葡萄': 30}
方法:dict['new_key']=new_value
a={'Michael': 95, 'Bob': 75, 'Tracy': 85} a['lee']=100 print(a) #輸出 {'Michael': 95, 'Bob': 75, ''lee':100,Tracy': 85}
注意字典里面內容是無序的,所以生成a['lee']的位置是隨機的
對字典里面元素進行修改
方法:直接修改value 的值即可修改,多次對一個key放入value,后面的值會把前面的值沖掉:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['bob']=100 print(d) #輸出{'Michael': 95, 'Bob': 100, 'Tracy': 85}
如果key不存在,Dict就會報錯
>>> d['Thomas'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Thomas'
方法1:
a={"name":"lee","job":"it","sex":"man"} for i in a: print( i,a[i]) #效率高 #輸出 job it #name lee #sex man
方法2:
for i,n in a.items(): #效率低 print(i,n) #輸出內容和方法1相同,但方法1效率更高,因為a.items() 先要轉換成字典列表對象 print(a.items()) #輸出內容為 [('name','lee'),('job','it'),('sex','man')]
dict字典的一些方法: 可以用Python3.5 自帶命令查找方法列表和方法的用法
a={'name',"lee"} dir(a)
得到結果
#用法 ,注意后面不用加() help(a.get)
得到結果
配合 內置函數zip()使用
zip():將用于可迭代的對象當成作為參數,將對象中的元素打包成一個元組,然后返回由這些元組組成的列表
方法1:循環法
{ i:j for i,j in zip(keys,values)}
items = ['蘋果',"梨子","香蕉"] prices = [5,3,4] print(zip(items,prices)) print(type(zip(items,prices))) #下面的 item price 是自定義變量,可隨意替換 如i,j dict1 = {item:price for item,price in zip(items,prices)} print(dict1) #輸出 {'蘋果': 5, '梨子': 3, '香蕉': 4} <zip object at 0x000002AEA57A5540> <class 'zip'>
方法2:dict(zip(keys,values))
用dict 方法轉換 ,代碼少
items = ['蘋果',"梨子","香蕉"] prices = [5,3,4] dict2 = dict(zip(items,prices)) print(dict2) #輸出 {'蘋果': 5, '梨子': 3, '香蕉': 4}
以上是“python中的字典有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。