上節(jié)課作業(yè)
1. 找到郵政編碼里面數(shù)字最多的那個省份的名字和共有幾個數(shù)字,結(jié)果應該是四川省和數(shù)字4
2. 定義如下的一個座位表,然后輸出座位表的每一個人的名字,同時輸出是第幾排第幾列
右下角張鑫晨為第1排第1列
注意最后一排有空位
這個比較簡單就不放代碼了,需要注意的一點是有2個空位置,可以用空字符串代替即可。如果最上面那行最后一個元素不填寫,則循環(huán)的時候注意檢查list長度,超過list長度范圍會出錯的。
字典數(shù)據(jù)類型定義
剛才的作業(yè)1里面,為了統(tǒng)計每個省份的個數(shù),用了列表類型來存儲,開始的時候列表為空,如果在列表中沒有找到省份,則向列表追加一個省份和個數(shù)的列表元素,這樣的做法用了2層循環(huán),看起來不是太優(yōu)美,有沒有更好的辦法呢
用字典數(shù)據(jù)類型能夠解決剛才的問題
字典是一種可變?nèi)萜鳎纱鎯θ我忸愋蛯ο?/p>
字典由0到n對鍵值組成,鍵值之間用冒號分割,每個對之間用逗號分隔,整個字典包括在花括號中
例如:d = { key1 : value1, key2 : value2 }
鍵必須是唯一的,但值則不必
值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或者元組
2個簡單的字典實例:
dict = { "語文課老師" : "張三", "數(shù)學課老師" : "李四", "英語課老師" : "王五"}
provinces={"四川" : 4, "湖北" : 2}
訪問字典里的值
把相應的鍵放入方括號,如下:
注意,如果訪問不存在的鍵,則程序會報錯
修改字典
通過賦值語句,可以修改字典的對應的鍵的值,如果該鍵不存在,則會新增鍵值,如下:
刪除字典元素
和列表一樣,使用del命令刪除字典的某個鍵值,或者整個字典,如下:
注意使用del刪除dict字典后的結(jié)果和用dict.clear()刪除字典中的所有元素的結(jié)果有何不同,這個可以自己去網(wǎng)上搜索答案
判斷是否存在鍵
使用字典自身的函數(shù)dict.has_key(key)來判斷是否存在這個鍵,返回True或者False:
如何遍歷字典
使用字典自身的函數(shù)dict.keys()來返回一個所有的鍵的列表,然后用for對這個列表進行循環(huán),循環(huán)內(nèi)部可以利用鍵來訪問值:
改造最多郵編省份名稱統(tǒng)計程序
改造統(tǒng)計最多郵編省份名稱的程序,將存儲統(tǒng)計結(jié)果的數(shù)據(jù)類型改為字典類型
判斷是否存在省份名稱的鍵,存在則將統(tǒng)計個數(shù)加1,不存在則向字典追加一個列表[省份,個數(shù)1]
然后對統(tǒng)計結(jié)果字典進行遍歷,判斷并記錄最大個數(shù)的那個鍵
改造后的代碼,變得簡潔了:
輸入一行字符串打印出每個字符出現(xiàn)的次數(shù)
程序思路:
模仿上面的程序,針對輸入英文字符進行遍歷
每個字符判斷在統(tǒng)計字典是否存在,存在,則值加1,不存在則賦值為1
遍歷統(tǒng)計字典的鍵,輸出個數(shù)
大家先不要看下面的代碼,自己嘗試從零開始編寫
代碼如下:
結(jié)果如下:
課后作業(yè)
1.輸入一行英文字符,分別統(tǒng)計英文字母/空格/數(shù)字/其它字符出現(xiàn)的次數(shù)
2.對6個數(shù)值進行排序,輸出從小到大
往期教程
從0001到0013總計13篇教程。
因為教程是系列教程,前后關聯(lián)性非常強,請大家按照微信公眾號【零基礎學編程】的歷史消息發(fā)布時間先后次序進行閱讀。
作者簡介
學哥,二十年編程經(jīng)驗,歷任程序員,資深程序員,技術經(jīng)理,項目經(jīng)理,產(chǎn)品經(jīng)理,系統(tǒng)架構(gòu)師,IT總監(jiān)。愛好篆刻,閱讀,美食。
QQ群簡介
歡迎大家加入QQ群 603559164 零基礎學編程,交流學習,共同進步。