千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > python里的get函數(shù)用法

python里的get函數(shù)用法

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-18 13:48:31 1700286511

Python中的get()函數(shù)是一個(gè)非常常用的函數(shù),它可以用來(lái)獲取字典中指定鍵的值。該函數(shù)的使用方法非常簡(jiǎn)單,只需要在字典后面加上.get(),并在括號(hào)中輸入鍵名即可。如果該鍵存在,則返回該鍵對(duì)應(yīng)的值;如果該鍵不存在,則返回默認(rèn)值(如果設(shè)置了默認(rèn)值)或者None。

例如,我們有一個(gè)字典,其中包含了一些人的姓名和年齡:


person = {'name': 'Tom', 'age': 18}

如果我們想要獲取Tom的年齡,可以使用get()函數(shù):


age = person.get('age')
print(age)  # 輸出18

如果我們想要獲取該字典中不存在的鍵的值,可以設(shè)置一個(gè)默認(rèn)值:


gender = person.get('gender', 'unknown')
print(gender)  # 輸出unknown

這樣,如果該字典中不存在gender這個(gè)鍵,則返回默認(rèn)值unknown。

那么,get()函數(shù)還有哪些用法呢?下面,我們將進(jìn)一步探討該函數(shù)的使用方法。

## get()函數(shù)的默認(rèn)值

在上面的例子中,我們已經(jīng)展示了get()函數(shù)的默認(rèn)值用法。當(dāng)我們想要獲取一個(gè)不存在的鍵時(shí),可以設(shè)置一個(gè)默認(rèn)值,以免出現(xiàn)KeyError異常。

除了設(shè)置一個(gè)固定的默認(rèn)值之外,我們還可以設(shè)置一個(gè)函數(shù)作為默認(rèn)值。這個(gè)函數(shù)將在鍵不存在時(shí)被調(diào)用,并返回一個(gè)默認(rèn)值。例如:


def default_age():
    return 20
age = person.get('age', default_age())
print(age)  # 輸出18

在這個(gè)例子中,我們定義了一個(gè)函數(shù)default_age(),它返回一個(gè)默認(rèn)值20。當(dāng)我們使用get()函數(shù)獲取age鍵的值時(shí),由于該鍵存在,所以返回18,而不會(huì)調(diào)用default_age()函數(shù)。

## get()函數(shù)的應(yīng)用場(chǎng)景

get()函數(shù)在實(shí)際編程中有很多應(yīng)用場(chǎng)景。下面,我們將介紹一些常見(jiàn)的應(yīng)用場(chǎng)景。

### 判斷字典中是否存在某個(gè)鍵

有時(shí)候,我們需要判斷一個(gè)字典中是否存在某個(gè)鍵。如果該鍵存在,我們需要獲取它的值;如果該鍵不存在,我們需要執(zhí)行一些其他的操作。在這種情況下,可以使用get()函數(shù)。

例如,我們有一個(gè)字典,其中包含了一些人的姓名和年齡。我們需要判斷該字典中是否存在gender這個(gè)鍵。如果存在,我們需要獲取它的值;如果不存在,我們需要輸出一條提示信息。


if person.get('gender') is not None:
    gender = person['gender']
    print(gender)
else:
    print('該人的性別未知')

在這個(gè)例子中,我們使用get()函數(shù)來(lái)判斷gender鍵是否存在。如果存在,則獲取它的值并輸出;如果不存在,則輸出一條提示信息。

### 統(tǒng)計(jì)列表中元素的出現(xiàn)次數(shù)

有時(shí)候,我們需要統(tǒng)計(jì)一個(gè)列表中每個(gè)元素的出現(xiàn)次數(shù)。可以使用字典來(lái)實(shí)現(xiàn)這個(gè)功能。

例如,我們有一個(gè)列表,其中包含了一些水果的名稱:


fruits = ['apple', 'banana', 'orange', 'apple', 'orange', 'pear', 'banana', 'banana']

我們需要統(tǒng)計(jì)每個(gè)水果的出現(xiàn)次數(shù)。可以使用一個(gè)字典來(lái)存儲(chǔ)每個(gè)水果的出現(xiàn)次數(shù):


fruit_count = {}
for fruit in fruits:
    fruit_count[fruit] = fruit_count.get(fruit, 0) + 1
print(fruit_count)

在這個(gè)例子中,我們使用一個(gè)for循環(huán)遍歷列表中的每個(gè)元素。對(duì)于每個(gè)元素,我們使用get()函數(shù)來(lái)獲取該元素在字典中的值,并將該值加1。如果該元素在字典中不存在,則默認(rèn)值為0。最終,我們輸出字典fruit_count,其中包含了每個(gè)水果的出現(xiàn)次數(shù)。

## 關(guān)于get()函數(shù)的相關(guān)問(wèn)答

### 1. get()函數(shù)和[]操作符有什么區(qū)別?

get()函數(shù)和[]操作符都可以用來(lái)獲取字典中的值。它們的主要區(qū)別在于,當(dāng)字典中不存在指定的鍵時(shí),[]操作符會(huì)拋出KeyError異常,而get()函數(shù)會(huì)返回一個(gè)默認(rèn)值(如果設(shè)置了默認(rèn)值)或者None。

### 2. 如何設(shè)置get()函數(shù)的默認(rèn)值?

可以在get()函數(shù)的第二個(gè)參數(shù)中設(shè)置默認(rèn)值。例如,person.get('gender', 'unknown')表示獲取person字典中的gender鍵的值,如果該鍵不存在,則返回默認(rèn)值unknown。

### 3. 如何設(shè)置get()函數(shù)的默認(rèn)值為一個(gè)函數(shù)?

可以定義一個(gè)函數(shù),然后將該函數(shù)作為get()函數(shù)的第二個(gè)參數(shù)。例如:


def default_age():
    return 20
age = person.get('age', default_age())

在這個(gè)例子中,如果person字典中不存在age鍵,則會(huì)調(diào)用default_age()函數(shù),并返回該函數(shù)的返回值20。

### 4. get()函數(shù)是否會(huì)修改字典?

get()函數(shù)不會(huì)修改字典。如果指定的鍵不存在,則返回默認(rèn)值或者None,而不會(huì)將該鍵添加到字典中。

### 5. get()函數(shù)是否支持嵌套字典?

get()函數(shù)完全支持嵌套字典。例如,如果我們有一個(gè)嵌套字典,可以使用get()函數(shù)來(lái)獲取嵌套字典中的值:


person = {'name': 'Tom', 'age': 18, 'contact': {'phone': '123456789', 'email': 'tom@example.com'}}
phone = person.get('contact').get('phone')
print(phone)  # 輸出123456789

在這個(gè)例子中,我們使用get()函數(shù)來(lái)獲取嵌套字典中的phone鍵的值。我們使用get()函數(shù)獲取contact鍵的值,它是一個(gè)嵌套字典。然后,我們?cè)俅问褂胓et()函數(shù)獲取phone鍵的值。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
set python什么意思

Set Python什么意思?Set是Python中的一種數(shù)據(jù)類型,它是一個(gè)無(wú)序、不重復(fù)的集合。Set中的元素必須是不可變的,例如數(shù)字、字符串、元組等。Set...詳情>>

2023-11-18 15:43:44
千鋒教育鴻蒙(HarmonyOS)開(kāi)發(fā)教程:應(yīng)用內(nèi)HSP開(kāi)發(fā)指導(dǎo)

應(yīng)用內(nèi)HSP指的是專門為某一應(yīng)用開(kāi)發(fā)的HSP,只能被該應(yīng)用內(nèi)部其他HAP/HSP使用,用于應(yīng)用內(nèi)部代碼、資源的共享。應(yīng)用內(nèi)HSP跟隨其宿主應(yīng)用的APP包...詳情>>

2023-11-18 15:17:57
range在python中的用法例子

range()函數(shù)是Python中常用的內(nèi)置函數(shù)之一,它可以生成一個(gè)整數(shù)序列,常用于循環(huán)中的計(jì)數(shù)器。range()函數(shù)的基本用法是range(start, stop, step)...詳情>>

2023-11-18 15:14:56
range python用法

range()是Python中的一個(gè)內(nèi)置函數(shù),用于生成一個(gè)整數(shù)序列。它的基本用法是range(start, stop, step),其中start是序列的起始值,stop是序列的終...詳情>>

2023-11-18 14:53:20
千鋒教育鴻蒙(HarmonyOS)開(kāi)發(fā)教程:HAR模塊詳解

HAR(HarmonyArchive)是靜態(tài)共享包,可以包含代碼、C++庫(kù)、資源和配置文件。通過(guò)HAR可以實(shí)現(xiàn)多個(gè)模塊或多個(gè)工程共享ArkUI組件、資源等相關(guān)代碼。...詳情>>

2023-11-18 14:47:55
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲不打码视频在线看 | 久久九九99这里有精品6 | 制服肉丝亚洲中文字幕 | 午夜福利一区二区三区 | 一本大道香蕉久在热线29 | 久久午夜视频一二三区 |