python 字典 setdefault()和get()方法比较详解

  • Post category:Python

Python 字典 setdefault() 和 get() 方法

Python 字典(Dictionary)是一种无序的、可变的、可迭代的集合,它由 key-value 对组成。Python 字典经常用来处理大量数据,它被设计成非常易于访问和操作。在 Python 字典中,setdefault() 和 get() 是两种非常常见的方法,用来获取和设置字典中的值。本文将详细讲解这两种方法的用法。

setdefault() 方法

Python 字典的 setdefault() 方法用于获取字典中指定 key 的 value。如果 key 不存在,则把 key 和默认值插入到字典中并返回默认值。setdefault() 方法的语法如下:

dict.setdefault(key, default=None)

参数说明:

  • key: 要查找的 key 值。
  • default: 要设置的默认值,如果不指定则默认为 None。

代码示例:

# 示例一
person = {"name": "Tom", "age": 20}
age = person.setdefault("age", 30)
print(age)  # 20

# 示例二
person = {"name": "Tom", "age": 20}
gender = person.setdefault("gender", "male")
print(gender)  # male
print(person)  # {"name": "Tom", "age": 20, "gender": "male"}

在本例中,首先我们创建了一个 person 字典,并设置了两个 key-value 对(name 和 age)。在第一个示例中,我们使用 setdefault() 方法获取了 age 的 value 值,由于 age 存在,所以直接返回 age 的 value 值,结果为 20。在第二个示例中,我们使用 setdefault() 方法获取了 gender 的 value 值,由于 gender 不存在,所以将 gender 的 value 值设置为 “male”,并返回这个值。最后我们打印了整个 person 字典,发现 gender 已经被成功插入到字典中。

get() 方法

Python 字典的 get() 方法用于获取字典中指定 key 的 value。如果 key 不存在,则可以返回指定的 default 值,或者返回默认值 None。get() 方法的语法如下:

dict.get(key, default=None)

参数说明:

  • key: 要查找的 key 值。
  • default: 要设置的默认值,如果不指定则默认为 None。

代码示例:

# 示例一
person = {"name": "Tom", "age": 20}
age = person.get("age", 30)
print(age)  # 20

# 示例二
person = {"name": "Tom", "age": 20}
gender = person.get("gender", "male")
print(gender)  # male
print(person)  # {"name": "Tom", "age": 20}

在本例中,我们使用 get() 方法获取了字典 person 中 age 和 gender 的 value 值。在第一个示例中,由于 age 存在,所以直接返回 age 的 value 值,结果为 20。在第二个示例中,由于 gender 不存在,所以返回指定的默认值 “male”。最后我们打印了整个 person 字典,发现 get() 方法并没有修改字典中的值。

总结

setdefault() 和 get() 方法在 Python 字典中非常常见,它们可以用来获取字典中指定 key 的 value,也可以用来设置指定 key 的默认值。setdefault() 方法在获取 value 的同时,如果 key 不存在则会自动插入默认值,而 get() 方法只是获取 value 的值,不会修改字典中的值。