孤荷凌寒自學python第十一天初識Python的字典類
孤荷凌寒自學python第十一天初識Python的字典類
(完整學習過程螢幕記錄視訊地址在文末,手寫筆記在文末)
Python的字典其實是一張二維對照表
下面舉例說明:
鍵名Key |
姓名 |
性別 |
身高 |
體重 |
職業 |
愛好 |
…… |
鍵值value |
張三 |
男 |
180 |
74 |
經理 |
書法 |
上圖表的第一排,即是字典的KEY部分,KEY是尋找一個鍵值的關鍵索引名稱,在同一個字典中,同個名稱的key只能有一個。
Key的的命名,只能是:數字、字串、元組
Key的名稱一旦定義就不能更改。
鍵值value是對應於key的一個內容,可以是任意python可接受的資料型別。
Value可以在字典的操作過程中隨時修改。
現在將上表用python字典的宣告方式來定義出來 。
一、建立字典的三種方法:
1 直接定義
字典定義標識 符號是花括號{}
例:
>>> dictA={'姓名':'張三','性別':'男','身高':'180','體重':'74','職業':'經理','愛好':'書法'}
>>> print(dictA)
{'姓名': '張三', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
這是字典的預設儲存格式,即key:value , key:value……成對進行表示。
2 將巢狀有多個元組的列表用以描述字典,然後使用全域性函式 dict轉換為字典
在這種方法中,列表中的每個作為列表元素的元組中都有兩個元素,一個是key,一個是value;然後將這些元組作為列表的元素嵌入列表。
例:
>>> lstA=[('姓名', '張三'), ('性別', '男'), ('身高', '180'), ('體重', '74'), ('職業', '經理'),( '愛好', '書法')]
>>> dictA=dict(lstA)
>>> print(dictA)
{'姓名': '張三', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
3 直接將用等式連線的key=value這樣格式組成的序列,使用dict函式轉換成字典
例:
>>> dictA=dict(姓名= '張三', 性別= '男', 身高= '180', 體重= '74', 職業= '經理', 愛好= '書法')
>>> print(dictA)
{'姓名': '張三', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
特別注意的是,key=value格式中key部分是一定不使用引號標識的。
二、修改字典的指定元素的value或向一個字典中新增元素
這兩種操作經過研究,發現語句寫法是一模一樣的
Diction[keyname]=value
其中Diction表示一個字典物件;
keyname表示key的命名;
value表示key對應的值。
新增與修改的不同在於:
如果指定的keyname是當前字典Diction中已存在的元素的key,則是修改這個元素的value.
如果 指定的keyname在當前字典Diction中沒有對應的元素有這個key則新增一個以此keyname命名的key的新元素,其value為value.
例:
>>> print(dictA)
{'姓名': '張三', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
>>> dictA['姓名']='李四' #這次是修改,因為key‘姓名’已經存在了
>>> print(dictA)
{'姓名': '李四', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
>>> dictA['年齡']=40 #這次是新增,因為key‘年齡’還不存在
>>> print(dictA)
{'姓名': '李四', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法', '年齡': 40}
三、刪除字典中的一個元素。
只需要指明要刪除的元素的key的命名,然後使用del函式即可:
del diction[keyname]
diction指的是字典物件。
keyname指要刪除的字典元素的Key 名稱。
例:
>>> print(dictA)
{'姓名': '李四', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法', '年齡': 40}
>>> del dictA['年齡']
>>> print(dictA)
{'姓名': '李四', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
四、刪除字典物件本身
這是說完全從記憶體中登出掉指定的字典物件。
del dictname
dictname 指的是字典物件的變數名
這樣操作後,指定變數名對應的字典物件就不復存在了。
五、格式化訪問字典指定key名稱的元素
‘%(keyname)s’ %dictname
keyname指的是key的標識名稱
dictname是指字典物件
例:
>>> print(dictA)
{'姓名': '李四', '性別': '男', '身高': '180', '體重': '74', '職業': '經理', '愛好': '書法'}
>>> strTemp='%(身高)s' %dictA
>>> print(strTemp)
180
——————————
今天整理的學習筆記完成,最後例行說明下我的自學思路:
根據過去多年我自學各種程式語言的經歷,認為只有真正體驗式,解決實際問題式的學習才會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6程式語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時還沒有網路),有的只是一本舊書,在痛苦的自學摸索中,我找到適應自己零基礎的學習方法:首先是每讀書的一小節就作相應的手寫筆記,第二步就是上機測試每一個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試之後,將筆記改為電子版,形成最終的修訂好的正確無誤的學習筆記 。
通過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視訊課程,結果發現也許自己學歷果然太低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際情況並不瞭解的情況,況且學習者的個體也存在差異呢?當然更可怕的是收費課程的價格往往是自己難以承受的。
於是我的所有程式設計學習都改為了自學,繼續自己的三步學習筆記法的學習之路。
當然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網路給我們帶來無限搜尋的機會,大家在網路上的學習日誌帶給我們共享交流的機會,而QQ群等交流平臺、網路社群的成立,我們可以一起自學,互相批評交流,也可以獲得更有效,更自主的自學成果。
於是我以人生已過半的年齡,決定繼續我的程式設計自學之路,開始學習python,只希望與大家共同交流,一個人的獨行是可怕的,只有一群人的共同前進才是有希望的。
誠摯期待您的交流分享批評指點! 歡迎聯絡我加入從零開始的自學聯盟。
這個時代網際網路成為了一種基礎設施的存在,於是本來在孤獨學習之路上的我們變得不再孤獨,因為網路就是一個新的客廳,我們時刻都可以進行沙龍活動。
非常樂意能與大家一起交流自己自學心得和發現,更希望大家能夠對我學習過程中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社群時代帶來的好福利,我相信大家會的,是吧!
根據完全共享的精神,開源互助的理念,我的個人自學錄製過程是全部按4K高清視訊錄製的,從手寫筆記到驗證手寫筆記的上機操作過程全程錄製,但因為4K高清檔案太大均超過5G以上,所以無法上傳至網路,如有需要可聯絡我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視訊。
我的學習過程錄影百度盤地址分享如下:(清晰度:1280x720)
連結: ofollow,noindex" target="_blank">https://pan.baidu.com/s/17Q0Iys68rd_AuTVtJVEQIw 密碼:1nxl
Bilibili:
https://www.bilibili.com/video/av35777020/
喜馬拉雅語音筆記:
https://www.ximalaya.com/keji/19103006/137665029