Python中字典的setdefault()方法教程

  • Post category:Python

以下是完整攻略。

标题

Python中字典的setdefault()方法教程

描述

在Python字典(dictionary)中,setdefault()方法是一个非常有用的方法。这个方法可以在字典中查找某个键,如果这个键不存在,则将它添加到字典中,并给它一个默认的值。当这个键已经存在时,它可以返回键对应的值。setdefault()方法的语法如下:

dict.setdefault(key, default=None)

参数

setdefault()方法有两个参数:

  • key:要查找的键。
  • default:如果要查找的键不存在,则将它添加到字典中,并设置它的默认值为default。

返回值

setdefault()方法有两种情况的返回值:

  • 如果要查找的键存在,则返回键对应的值。
  • 如果要查找的键不存在,则将它添加到字典中,并返回default。

示例

下面是两个示例,分别说明了setdefault()方法的使用方法:

# 示例一
d = {'name': 'Jack', 'age': 18}
name = d.setdefault('name', 'Tom')
gender = d.setdefault('gender', 'Male')
print(name)   # 输出:'Jack'
print(gender) # 输出:'Male'
print(d)      # 输出:{'name': 'Jack', 'age': 18, 'gender': 'Male'}

# 示例二
scores = {}
results = [('Tom', 85), ('Jack', 75), ('Lisa', 92), ('Tom', 80), ('Lisa', 90)]
for name, score in results:
    scores.setdefault(name, []).append(score)
print(scores) # 输出:{'Tom': [85, 80], 'Jack': [75], 'Lisa': [92, 90]}

在示例一中,我们创建了一个字典d,并将name和age两个键值对添加到字典中。然后我们调用setdefault()方法来获取name和gender键对应的值,由于name键已经存在,所以返回的值是’Jack’。而gender键不存在,所以将它添加到字典中,并设置它的值为’Male’。

在示例二中,我们创建了一个空字典scores,并将一些成绩添加到scores字典中。由于同一个人可以考多次试,因此我们用一个列表来保存一个人的多个成绩。然后我们使用setdefault()方法来获取一个人的成绩列表,如果一个人的成绩列表还不存在,则使用空列表[]作为默认值并添加到scores字典中。最终,我们得到了一个包含每个人所有成绩的字典。