py笔记.字典的使用
5.1 使用字典
? ? ? ? ? ? ? ?在python中,字典是一系列鍵-值對,每一個鍵都與一個值相互關聯。通過使用相應的鍵來訪問與之對應的值
? ? ? ? ? ? ? ?與鍵相關聯的值可以是數字、字符串、列表以及字典,我們可以將python中的任何對象都作為字典的值
? ? ? ? ? ? ? ?字典的表示:用放在{}里面的一系列鍵-值對進行表示
? ? ? ? ? ? ? ?鍵-值對是兩個相互關聯的值
? ? ? ? ? ? ? ?鍵和值之間用“:”分隔,鍵-值對之間用“,”分隔
? ? ? ? ? ? ? ?5.1.1 訪問字典中的值
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?要獲取鍵相關的值,可以依次將指定字典名和放在{}里面的鍵值
?
alen={"1":"qwer","dd":"rwe"} print(alen["1"])? ? ? ? ? ? ? ?5.1.2 添加鍵-值對
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?字典是一種動態的結構,我們可以隨時在其中添加鍵-值對
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?添加鍵-值對,可以依次指明字典名、用方括號闊起來的鍵和相關的值
alen={"1":"qwer","dd":["erw","rew"]} print(alen["1"]) alen['erwer']=["erw","rew"] print(alen) 結果:{'1': 'qwer', 'dd': ['erw', 'rew'], 'erwer': ['erw', 'rew']}? ? ? ? ? ? ? ?5.1.3 先創建一個空的字典
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?原因:有時候為了方便,有時候是必須需要這個樣子做
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?方式:字典的名字={},然后在分行添加各個鍵-值對
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?使用時間:當我們使用字典來存儲用戶提供的數據或者編寫能大量自動生成鍵-值對的代碼的時候
? ? ? ? ? ? ? ?5.1.4 修改字典中的值
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?要修改字典中的值,可以依次指定字典名、用方括號括起來的鍵以及與該鍵相關聯的新值
? ? ? ? ? ? ? ?5.1.5 刪除鍵-值對
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?對于字典中不需要的信息,我們可以使用del語句將其刪除
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?格式:del 指定的字典名和要刪除的鍵
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?注意:一旦刪除鍵-值對,就意味著將其永久的刪除了
?
alen={"1":"qwer","dd":["erw","rew"]} print(alen["1"]) alen['erwer']=["erw","rew"] print(alen) del alen["1"] print(alen) del alen #print(alen)報錯,不存在字典alen 結果: {'1': 'qwer', 'dd': ['erw', 'rew'], 'erwer': ['erw', 'rew']} {'dd': ['erw', 'rew'], 'erwer': ['erw', 'rew']}?
?5.2 遍歷字典
? ? ? ? ? ? ? ?5.2.1 遍歷所有的鍵-值對
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?要編寫用于遍歷字典的for循環,可以聲明兩個變量,用于存儲鍵-值對中的鍵和值
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?對于聲明的這兩個變量的名稱,我們可以采用任何值。
? ? ? ? ? ? ? ?注意:
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?1.遍歷字典的時候,鍵-值對的返回順序也與存儲順序不同。
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?2.python不關心鍵-值對的存儲順序,而值跟蹤鍵和值之間的關聯關系
?
list1 = {"列表":"list=[]","元組":"list()","字典":"list{}"} for i,j in list1.items():print(i,j) #結果: 列表 list=[] 元組 list() 字典 list{}注意:在第一次編寫代碼的時候沒有注意到(.items())的存在第一個變量的名字為元組中的鍵第二個變量的名字為元組中的值? ? ? ? ? ? ? ?5.2.2 遍歷字典中所有的鍵
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?當我們不需要去使用元組中的值的時候,使用元組.keys()來訪問元組中的鍵是一個很好的方法
?
list1 = {"列表2":"list=[]","元組2":"list()","字典3":"list{}"} for i in list1.keys():print(i) #結果: 列表2 元組2 字典3? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?遍歷字典的時候會默認遍歷所有的鍵,所以也可以采取下面的例子中的方法來遍歷
?
方式1: list1 = {"列表2":"list=[]","元組2":"list()","字典3":"list{}"} for i in list1:print(i) #結果: 列表2 元組2 字典3方式2: list1 = {"列表2":"list=[]","元組2":"list()","字典3":"list{}"} for i, j, k in list1:print(i) #結果: 列 元 字注意:1.通過方式2遍歷元組的鍵值的時候必須保證元組中所有的鍵的長度是一樣,否則程序無法正常運行2.for后面的變量名的個數必須和元組中鍵的長度保持一致,否則程序將無法正常運行。3.通過方式2中變量的含義:第n位的變量代表元組中相應的鍵的第n個字符4.使用這種方法的時候一定要慎重的考慮? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?方法元組.keys()不僅僅可以用來遍歷元組,實際上,它也可以返回一個列表,其中包含有字典中所有的鍵
? ? ? ? ? ? ? ?5.2.3 按順序遍歷遍歷字典中的所有的鍵
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?字典明確的記錄了鍵與值之間的關聯關系,但是在獲取字典元素的時候,獲取的順序是不可預測的。
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?要以返回特定順序的元素的時候,我們可以在for循環中對返回的鍵進行排序,可以使用sorted()函數
?
list1={"jen":"python","sarah":"c","edward":"ruby","phil":"python"} for name in sorted(list1.keys()):print(name.title()) #結果: Edward Jen Phil Sarah通過這種方法是在for循環前先對整個鍵所在的列表進行排序? ? ? ? ? ? ? ?5.2.4 遍歷字典中所有的值
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?當我們需要去使用元組中的值的時候,使用元組.values()來訪問元組中的值,它返回的是一個值列表,不包含
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?任何的鍵
?
list1={"jen":"python","sarah":"c","edward":"ruby","phil":"python"} for name in sorted(set(list1.values())):print(name.title(),end=" ") print() for name in set(sorted(list1.values())):print(name.title(),end=" ") print() for name in list1.values():print(name.title(),end=" ") print() for name in sorted(list1.values()):print(name.title(),end=" ") #結果: C Python Ruby Ruby Python C Python C Ruby Python C Python Python Ruby在python中使用set()函數來剔除列表中重復的元素存在問題: set(sorted(list))與sort(set(list))的結果為什么不同?5.3 嵌套
? ? ? ? ? ? ? ?嵌套:將一系列字典存儲在列表中,或者將列表作為值存儲在字典中
? ? ? ? ? ? ? ?5.3.1 字典列表
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?使用場景:用于管理獨立個體的信息的集合
?
list1=[] for i in range(5):alien={"name":"alien","point":5,"speed":23}list1.append(alien) for i in list1:print(i)? ? ? ? ? ? ? ?5.3.2 在字典中存儲列表
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?使用場景:例如為某一個顧客所提供的各種不同的信息進行保存
?
list1={"jen":[1,2,3,4,5],"len":["fsdf","fsdfs"]} print(list1)存在疑惑:如何將自己輸入或者創建的列表塞到元組中在函數那塊得到解決? ? ? ? ? ? ? ?注意:
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?列表和字典的嵌套層級不應該太多。
? ? ? ? ? ? ? ?5.3.3 在字典中存儲字典
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?可以在字典中存儲字典,但是這個樣子做的話,代碼可能會變的復雜起來。
? ? ? ? ? ? ? ?注意:
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?在嵌套字典的時候應該盡量去嵌套結構一致的字典,這樣做有助于減少for循環內部代碼對的復雜性
5.4 習題
?
list1 = {"first_name":"張","last_name":"振","City":"延安"} for i,j in list1.items():print(i,":",j) love_number = {"小張":5,"小王":6,"小黃":7,"小李":8,"小白":9} print(love_number)#通過種方法獲得的是之前數據在字典中的存儲的形式 print(love_number.items())#通過這種方法獲得的字典中的鍵-值對,并以元組的形式進行表示 print(love_number.values())#通過這種方法獲得的是字典中所有的值構成的列表 for name, number in love_number.items():print(name,"love number is ", number) python_items={"列表":["大小可變","pop,del刪除元素","[]"],"元組":["特殊的列表","大小不可變","()"],"字典":["由鍵和值組成"]} print(python_items.values()) print(python_items.items()) for name,next in python_items.items():print(name,"的含義為:",end="")for i in next:print(i,end=" ")print()//筆記的存檔就要完了
總結
以上是生活随笔為你收集整理的py笔记.字典的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暗域八翼邪龙
- 下一篇: mac上解决Resource tempo