python里的get函数用法

2023-12-15 4:15:43 网络知识 悟空

Python中的get()函数是一个非常常用的函数,它可以用来获取字典中指定键的值。该函数的使用方法非常简单,只需要在字典后面加上.get(),并在括号中输入键名即可。如果该键存在,则返回该键对应的值;如果该键不存在,则返回默认值(如果设置了默认值)或者None。

例如,我们有一个字典,其中包含了一些人的姓名和年龄:


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

如果我们想要获取Tom的年龄,可以使用get()函数:


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

如果我们想要获取该字典中不存在的键的值,可以设置一个默认值:


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

这样,如果该字典中不存在gender这个键,则返回默认值unknown。

那么,get()函数还有哪些用法呢?下面,我们将进一步探讨该函数的使用方法。

## get()函数的默认值

在上面的例子中,我们已经展示了get()函数的默认值用法。当我们想要获取一个不存在的键时,可以设置一个默认值,以免出现KeyError异常。

除了设置一个固定的默认值之外,我们还可以设置一个函数作为默认值。这个函数将在键不存在时被调用,并返回一个默认值。例如:


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

在这个例子中,我们定义了一个函数default_age(),它返回一个默认值20。当我们使用get()函数获取age键的值时,由于该键存在,所以返回18,而不会调用default_age()函数。

## get()函数的应用场景

get()函数在实际编程中有很多应用场景。下面,我们将介绍一些常见的应用场景。

### 判断字典中是否存在某个键

有时候,我们需要判断一个字典中是否存在某个键。如果该键存在,我们需要获取它的值;如果该键不存在,我们需要执行一些其他的操作。在这种情况下,可以使用get()函数。

例如,我们有一个字典,其中包含了一些人的姓名和年龄。我们需要判断该字典中是否存在gender这个键。如果存在,我们需要获取它的值;如果不存在,我们需要输出一条提示信息。


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

在这个例子中,我们使用get()函数来判断gender键是否存在。如果存在,则获取它的值并输出;如果不存在,则输出一条提示信息。

### 统计列表中元素的出现次数

有时候,我们需要统计一个列表中每个元素的出现次数。可以使用字典来实现这个功能。

例如,我们有一个列表,其中包含了一些水果的名称:


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

我们需要统计每个水果的出现次数。可以使用一个字典来存储每个水果的出现次数:


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

在这个例子中,我们使用一个for循环遍历列表中的每个元素。对于每个元素,我们使用get()函数来获取该元素在字典中的值,并将该值加1。如果该元素在字典中不存在,则默认值为0。最终,我们输出字典fruit_count,其中包含了每个水果的出现次数。

## 关于get()函数的相关问答

### 1. get()函数和[]操作符有什么区别?

get()函数和[]操作符都可以用来获取字典中的值。它们的主要区别在于,当字典中不存在指定的键时,[]操作符会抛出KeyError异常,而get()函数会返回一个默认值(如果设置了默认值)或者None。

### 2. 如何设置get()函数的默认值?

可以在get()函数的第二个参数中设置默认值。例如,person.get('gender', 'unknown')表示获取person字典中的gender键的值,如果该键不存在,则返回默认值unknown。

### 3. 如何设置get()函数的默认值为一个函数?

可以定义一个函数,然后将该函数作为get()函数的第二个参数。例如:


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

在这个例子中,如果person字典中不存在age键,则会调用default_age()函数,并返回该函数的返回值20。

### 4. get()函数是否会修改字典?

get()函数不会修改字典。如果指定的键不存在,则返回默认值或者None,而不会将该键添加到字典中。

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

get()函数完全支持嵌套字典。例如,如果我们有一个嵌套字典,可以使用get()函数来获取嵌套字典中的值:


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

在这个例子中,我们使用get()函数来获取嵌套字典中的phone键的值。我们使用get()函数获取contact键的值,它是一个嵌套字典。然后,我们再次使用get()函数获取phone键的值。

发表评论: