<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
以下內容均為個人筆記,僅供學習參考使用,因內容均為自己實踐經驗所得,個人水平有限,如有錯誤歡迎指正
注:程式語言為Python3
之前在學習python的時候,在獲取值得時候常用的方法就是直接
print(dict[key])
但這種方法中當字典中不存在該鍵時會返回KeyError型別錯誤,此時就可以用get()函數還利用鍵獲取值
print(dict.get(key))
利用get()函數操作時當字典中不存在輸入的鍵時會返回一個None,這樣程式執行時就不會出異常
比如現在有這麼一個列表,讓你統計列表中部分元素出現的次數
ls=['aa','b','c','ddd','aa']
統計列表中每個元素出現次數:
cou={} #建立一個空字典 for i in ls: cou[i]=cou.get(i,0)+1 #之後稱其為get的賦值語句,目的是新建字典鍵值對 ''' 賦值語句程式碼等價於 cou[i]=0 cou[i}=cou[i]+1 ''' print(cou)
輸出結果:
{'aa': 2, 'b': 1, 'c': 1, 'ddd': 1}
get()函數在這裡有兩個引數,第一個是確定要分配值的鍵,第二個是擬定給鍵分配一個初值,但實際要給鍵賦值仍需要get賦值語句(為什麼這麼說下面有介紹)
比如說我現在新增這個語句到程式碼中
cou.get('b',10) #之後稱為擬定初值語句
擬定初值語句本身對結果是沒有影響的,因為並沒有實際的對鍵進行賦值語句操作(個人感覺擬定初值語句是因為沒有在字典中找到要賦值的鍵,因為根本沒有建立要賦值的鍵,因此賦值失敗,即相當於一個沒有返回值的函數,就算給這個函數賦引數了也沒有任何返回結果)
注:get()函數在作為鍵賦值語句(非擬定賦值語句,區別看上程式碼框內註釋)時只有第一次是有效的,(比如get()函數在第一次對’aa’這個鍵使用get賦值語句後下次再使用get賦值語句時鍵的值仍為第一次賦值運算後的結果),以下為測試程式碼:
ls=['aa','b','c','ddd','aa'] cou={} #建立一個空字典 for i in ls: cou[i]=cou.get(i,0)+1 #功能邏輯看下方闡述 cou['aa']=cou.get('aa',10) #功能同前一條程式碼執行到第二次時的 print(cou)
這裡著重講一下第4行程式碼:cou[i]=cou.get(i,0)+1
第行程式碼從邏輯上講執行了兩次,而這兩次裡get語句每次執行時的功能是不一樣的:
第一次:cou[i]=cou.get(i,0)+1(i=‘aa’)
此時get語句的功能為賦初值,即把鍵’aa’的初值置為0然後加1
第二次:cou[i]=cou.get(i,0)+1(i=‘aa’)
因get語句已經作為賦值語句出現過一次了,因此此時再執行這條語句時,賦值功能已經無效了,也就是get語句裡第二個引數對’aa’這個鍵已經無效了,此時get語句的功能為文章內的第一大部分所介紹的功能,所以這條語句此時可等價為
cou[i]=cou.get(i)+1
即
cou[i]=cou[i]+1
輸出結果和之前的程式碼結果相同:
{'aa': 2, 'b': 1, 'c': 1, 'ddd': 1}
當單獨使用get賦值語句時如果鍵是第一次出現的話,效果等同賦值語句(和之前在空字典裡通過for迴圈建立新鍵值對效果一樣)
cou['e']=cou.get(e,10)
輸出結果:
```python
{'aa': 10, 'b': 1, 'c': 1, 'ddd': 1,'e':10}
順帶一提如果想直接改變字典中鍵的值時可用如下方法:
cou['aa']=10 #這種賦值語句帶有強制性 print(cou)
輸出結果:
{'aa': 10, 'b': 1, 'c': 1, 'ddd': 1}
dict.get(key)和dict[key]在key值存在的情況下,都能得到對應的鍵值。但是當使用dict[key]時,key必須要存在,否則會報錯。但是dict.get[key]中的key可以不存在,因為get方法有一個預設的引數None,當key不存在的時候,返回None。
到此這篇關於python字典中get()函數基本用法的文章就介紹到這了,更多相關python字典get()函數用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45