Python python字典:get vs setdefault

Python python字典:get vs setdefault

在本文中,我们将介绍Python中字典的两个常用方法——get和setdefault,它们都用于从字典中获取值,但在某些情况下有着不同的行为和用途。

阅读更多:Python 教程

字典介绍

字典是Python中的一种无序、可变的数据结构,用于存储键-值对。字典中的键必须是唯一的,而值可以是任何数据类型。字典是一种非常高效的数据结构,可以快速地根据键获取对应的值。

下面是一个字典的示例:

user = {
    'name': 'John',
    'age': 25,
    'profession': 'engineer'
}

get方法

get方法用于从字典中获取指定键的值。它接受一个键作为参数,并返回对应的值。如果字典中不存在该键,则返回None或者指定的默认值。

下面是get方法的语法:

value = dict.get(key, default=None)

其中,key表示要获取的键,default表示当指定键不存在时返回的默认值(默认为None)。

示例代码:

user = {
    'name': 'John',
    'age': 25
}

name = user.get('name')
print(name)  # 输出:John

city = user.get('city', 'unknown')
print(city)  # 输出:unknown

在上面的示例中,我们首先通过get方法获取了字典中键’name’对应的值,然后再尝试获取键’city’对应的值,由于字典中不存在该键,所以返回了我们指定的默认值’unknown’。

setdefault方法

setdefault方法也用于从字典中获取指定键的值,但与get方法不同的是,如果指定键不存在于字典中,setdefault方法会将该键与指定的默认值插入到字典中。

下面是setdefault方法的语法:

value = dict.setdefault(key, default=None)

其中,key表示要获取的键,default表示当指定键不存在时要插入的默认值。

示例代码:

user = {
    'name': 'John',
    'age': 25
}

name = user.setdefault('name', 'unknown')
print(name)  # 输出:John

city = user.setdefault('city', 'unknown')
print(city)  # 输出:unknown

print(user)  # 输出:{'name': 'John', 'age': 25, 'city': 'unknown'}

在上面的示例中,我们首先通过setdefault方法获取了字典中键’name’对应的值,由于字典中存在该键,所以返回了它的值’John’。然后我们尝试通过setdefault方法获取字典中键’city’对应的值,由于字典中不存在该键,所以setdefault方法将该键与指定的默认值’unknown’插入到了字典中。

get vs setdefault

get和setdefault方法在某些情况下有着相似的行为,即都可以用于获取字典中指定键的值。但是它们的主要区别在于当键不存在于字典中时的处理方式。

get方法返回None或者指定的默认值,而不会修改字典本身。而setdefault方法会将指定键与默认值一起插入到字典中,以后可以直接使用这个键。

user = {
    'name': 'John',
    'age': 25
}

name = user.get('name', 'unknown')
print(name)  # 输出:John

name = user.get('city', 'unknown')
print(name)  # 输出:unknown

print(user)  # 输出:{'name': 'John', 'age': 25}

user.setdefault('city', 'unknown')
print(user)  # 输出:{'name': 'John', 'age': 25, 'city': 'unknown'}

在上面的示例中,我们首先使用get方法尝试获取字典中键’name’对应的值,由于该键存在,所以返回了它的值’John’。然后我们使用get方法尝试获取字典中键’city’对应的值,由于该键不存在,所以返回了我们指定的默认值’unknown’,但是字典本身并没有发生改变。

接着我们使用setdefault方法获取字典中键’city’对应的值,由于该键不存在,所以setdefault方法将该键与指定的默认值’unknown’插入到了字典中,字典发生了变化。

总结

通过本文的介绍,我们了解了Python中字典的get和setdefault方法。它们都可以用于从字典中获取指定键的值,但在处理键不存在的情况时有着不同的行为。get方法返回None或者指定的默认值,而不会修改字典本身;而setdefault方法会将指定键与默认值一起插入到字典中。根据实际需求选择适合的方法,可以更加方便地操作字典中的数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程