摘要:,同為小白的朋友們大家好,這期主要為大家帶來有關字典的一些實用技巧。上篇筆記通過感人肺腑的老白讓大家認識到了字典這么有用的數據類型,這一期讓我們看看如何能更好的操作字典。
Hello ,同為小白的朋友們大家好,這期主要為大家帶來有關字典的一些實用技巧。上篇筆記通過感人肺腑的老白讓大家認識到了字典這么有用的數據類型,這一期讓我們看看如何能更好的操作字典。
基礎篇下面我給大家來一個簡單的字典方法匯總,誠意滿滿,希望大家喜歡,如果有錯誤或者遺漏希望大神可以補上~
創建字典,得到字典中的鍵值,新增,修改,刪除,清空字典
stocks ={"IBM":146, # 創建字典 "MSFT":44, "MAOTAI":1000} stocks["IBM"] # 查詢字典中的一個值 Out:146 stocks.get("MSFT") # 查詢字典中的一個值 Out:44 stocks.get("a","Not found") # 查詢字典中的一個值,如果沒有,返回 Not found stocks["a"] # 拋出錯誤,因為字典中沒有這個值 stocks["IBM"]=200 # 修改值 stocks["APPLE"]=400 # 新增鍵和值 stocks.update({"APPLE":900, "MAOTAI":0, "MSFT":250}) # 一次修改多個值 del stocks["APPLE"] # 刪除一個值 stocks.pop["MAOTAI"] # 刪除并返回刪除的值 stocks.keys() # 獲得字典的所有鍵 stocks.values() # 獲得字典的所有值 stocks.items() # 獲得字典的所有鍵和值,形式為 (key,value) for k,v in stocks.items(): # 遍歷一個字典,輸出它的鍵和值 print(k,v) stocks.clear() #清空一個字典,讓字典為空 del stocks #直接刪除一個字典
好啦,基礎方法就這么多大概,這里創建了一個stocks字典用來表示股票名稱和價錢,然后在基礎上舉例子的,有兩點需要大家注意:
一次更新多個值的時候用update()方法會很方便
如果利用dict[key]的方式獲取一個字典中不存在的值會報錯,正確做法是用get()函數,效果好很多
奇淫巧技篇創建字典歪門邪道之一: list + zip
除了常規的方式,還有很多其他方式可以幫助我們創建一個字典,比如我們這里想要創建一個字典來表示一個學生的各科成績:
subject=["Math","Chinese","English","Science","Art"] marks=[80,78,96,60,75] final_result=dict(zip(subject,marks)) print(final_result.items()) Out: dict_items([("Math", 80), ("Chinese", 78), ("English", 96), ("Science", 60), ("Art", 75)])
這里其實很容易看懂,我們把subject的所有值作為key值,把marks所有值看成values的值,最后用Python很常見的zip就啪啪啪的將他們合并啦,形成了一個新的字典final_result
創建字典歪門邪道之二: 利用等號
上面的字典還可以通過這種形式來創建;
final_result= dict(Math=80,Chinese=78,English=96,Science=60,Art=75) print(final_result.items()) Out: dict_items([("Math", 80), ("Chinese", 78), ("English", 96), ("Science", 60), ("Art", 75)])
字典排序: 根據鍵值Key排序
還是使用上面已經建好的字典 final_result,我們先根據字典中的鍵值來排序:
print(sorted(final_result.items())) # 自動根據鍵的值從小到大或者按照A-Z排序 Out:[("Art", 75), ("Chinese", 78), ("English", 96), ("Math", 80), ("Science", 60)]
換一種方式:
import operator print(sorted(final_result.items(),key=operator.itemgetter(0))) Out:[("Art", 75), ("Chinese", 78), ("English", 96), ("Math", 80), ("Science", 60)]
或者用lamba函數秀一波:
print(sorted(final_result.items(),key=lambda x:x[0])) Out:[("Art", 75), ("Chinese", 78), ("English", 96), ("Math", 80), ("Science", 60)]
不要問我為什么,我也在學,但是我深知在Python編程裝逼界你不用幾個lamba,reduce什么的都不好意思和人打招呼,哈哈
如果我們想要實現根據鍵值倒序也很簡單:
print(sorted(final_result.items(),reverse=True)) Out:[("Science", 60), ("Math", 80), ("English", 96), ("Chinese", 78), ("Art", 75)]
字典排序: 根據Value值排序
其實大家看到了根據key的排序,也猜到了如何根據value 排序:
print(sorted(final_result.items(),key=lambda x:x[1])) #根據分數排序,從低到高 Out:[("Science", 60), ("Art", 75), ("Chinese", 78), ("Math", 80), ("English", 96)]
或者換一種方式:
import operator print(sorted(final_result.items(),key=operator.itemgetter(1))) Out:[("Science", 60), ("Art", 75), ("Chinese", 78), ("Math", 80), ("English", 96)]
倒序也是類似:
print(sorted(final_result.items(),key=lambda kv:kv[1],reverse=True)) Out:[("English", 96), ("Math", 80), ("Chinese", 78), ("Art", 75), ("Science", 60)]
這里我在lamba后面沒有寫x,寫了一個kv,就是告訴大家這里是什么不太重要,先這么理解就行
獲取字典的子集
我們將會一直使用上面的final_result字典來示范,這里如果我們想要得到這個學生成績大于70分的字典子集應該怎么做呢,很簡單:
final_result= dict(Math=80,Chinese=78,English=96,Science=60,Art=75) above_seventy ={subject:mark for subject,mark in final_result.items() if mark >70} print(above_seventy.items()) Out:dict_items([("Math", 80), ("Chinese", 78), ("English", 96), ("Art", 75)])
交換字典中的key和value的值
這個小技巧可以這樣實現:
exchange_key_value= dict(zip(final_result.values(),final_result.keys())) print(exchange_key_value.items()) Out: dict_items([(80, "Math"), (78, "Chinese"), (96, "English"), (60, "Science"), (75, "Art")])
獲取字典最大值最小值
簡直不要太簡單呀:
print("The best mark is {}".format(max(final_result.values()))) print("The worst mark is {}".format(min(final_result.values()))) Out: The best mark is 96 The worst mark is 60總結
沒啥可說的啦,寫了這么多,求老鐵們雙擊666鼓勵一波!!!!
完結,撒花~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43112.html
為什么你需要pandas 大家好,今天想和大家分享一下有關pandas的學習新的,我因工作需要,從去年12月開始接觸這個非常好用的包,到現在為止也是算是熟悉了一些,因此發現了它的強大之處,特意想要和朋友們分享,特別是如果你每天和excel打交道,總是需要編寫一些vba函數或者對行列進行groupby啊,merge,join啊之類的,相信我,pandas會讓你解脫的。 好啦,閑話少說,這篇文章的基礎...
摘要:新年快樂大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區做點貢獻,在此祝大家新年快樂上一期為大家梳理了一些的進階用法,今天我們來看字典的相關技巧,我個人在編程中對字典的使用非常頻繁,其實對于不是非常大的數據存儲需求, 新年快樂 大家好,今天是大年初二,身在國外沒有過年的氛圍,只能踏實寫寫文章,對社區做點貢獻,在此祝大家新年快樂!上一期為大家梳理了一些List的進...
摘要:如果還有不明白的小白朋友們可以百度一下哈,嗖的一下百家號補習班就出來啦,哈哈,你啥都沒查到開個小玩笑。 ## List初步進階 ## hello,大家好,經過上篇筆記的介紹,我們已經對List這種數據類型有了初步的理解,今天我要趁熱打鐵,為大家介紹一些實用的List技巧,希望能幫助到各位大家~ extend合并列表() first_lst = [I,am,noob] s...
摘要:嘗射于家圃,有賣油翁釋擔而立,睨之,久而不去。康肅問曰汝亦知射乎吾射不亦精乎翁曰無他,但手熟爾。康肅忿然曰爾安敢輕吾射翁曰以我酌油知之。 開啟變身模式 大家好, 從這一期開始,我們會從小白變身為中等小白,在基礎起步階段有太多的東西我沒有講到,但是俗話說的好,無他,但手熟爾,只要多多練習,時間會是最好的證明,相信我們終有一天會成為高手,因此從這一系列開始,讓我們一起更上一層樓,還是和往常...
摘要:大家好,我是小白,書接上回,我們目前已經了解到了中很常見的一種數據類型,也初步掌握了一些自帶的有關的方法今天為大家介紹另外一種異常火爆的數據結構字典,不夸張的講,基本上我們熟悉了列表和字典后有關數據結構這里就差不多啦,實際的項目中應用的最多 大家好,我是小白,書接上回,我們目前已經了解到了Python中很常見的一種數據類型:List,也初步掌握了一些Python自帶的有關List的方法...
閱讀 651·2021-11-23 09:51
閱讀 3599·2021-11-15 11:38
閱讀 926·2021-10-14 09:42
閱讀 3162·2021-09-29 09:35
閱讀 2104·2021-09-03 10:33
閱讀 769·2021-07-30 16:33
閱讀 1558·2019-08-30 15:55
閱讀 1840·2019-08-30 14:04