当使用python字典时,你可能会遇到这样的场景:如果要向一个已有的字典中添加值,你需要先判断这个键是否存在,如果存在就直接修改值,否则就添加这个键值对。这种判断和添加的过程比较麻烦,可以使用字典的setdefault()
方法来简化操作。在本文中,我将为你详细介绍python字典的setdefault()
方法,并展示其巧妙用法。
什么是python字典的setdefault()?
setdefault()
是python字典中的一个方法,用于向字典中添加键值对。如果当前的字典中没有该键,则会自动添加这个键值对,并返回值;如果已经有了该键,则会返回该键对应的值。方法的语法如下:
dict.setdefault(key, default=None)
其中,key
为要查找的键;default
为要添加的键的默认值,如果键不存在时会使用这个默认值。当不写default
且字典中没有对应的键时,默认值为None
。
要点:
- key参数和default参数都是必须的.
- 如果key在字典中不存在,则将key添加到字典中并将default作为key所对应的值,然后返回default.
- 如果key在字典中存在,返回key对应的值.
- 代码中可以省略default
下面让我们看几个具体的用例来学习这个方法更好地使用。
示例1:使用setdefault()在字典中添加值
看下面一段代码:
d = {'a':1, 'b':2}
if 'c' in d:
d['c'] += 1
else:
d['c'] = 1
如果字典中不存在键'c'
,那么代码就会向字典中添加一个键为'c'
值为1
的键值对。如果'c'
已经存在,那么代码就会将'c'
对应的值加一。这种方法看起来很笨,因为重复的代码会变得很多,在大量添加键值对时就显得很浪费时间了。使用setdefault()方法可以帮助我们简化这一过程,如下所示:
d = {'a':1, 'b':2}
d.setdefault('c', 0)
d['c']+=1
这里的第二行代码会检查键'c'
是否已经在字典中存在。如果不存在,就会向字典中添加一个键为'c'
,值为0
的键值对。如果存在,就会跳过这一步。第三行代码直接将'c'
对应的值加一。这个示例代码是一个比较简单的例子,但是在大量添加键值对时,使用setdefault()将会是个更加简单的做法。
示例2:用setdefault()向列表中添加值
在python中,我们可以使用字典来处理文本中的单词计数问题。例如,如果有一段文本,需要计算其中单词出现的次数。那么我们可以使用字典来保存每个单词出现的次数,如下所示:
text = "hello world hello"
word_count = {}
for word in text.split():
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print(word_count)
在这个例子中,我们创建了一个word_count
字典,将文本中的每个单词进行分割、遍历,如果字典中已经存在该单词,就将该单词对应的值加一,否则就将该单词加入字典并令值为1。使用setdefault()也可以很简单地解决这个问题,如下所示:
text = "hello world hello"
word_count = {}
for word in text.split():
word_count.setdefault(word, 0)
word_count[word] += 1
print(word_count)
在第三行代码中,我们使用setdefault()方法将单词加入字典,并将默认值设为0
。这种方式的思路其实和之前的例子很相似,但是这里显然更为简洁。
结论
在这篇文章中,我们学习了python字典的setdefault()
方法,它可以很方便地向字典中添加键值对,并且可以简化添加重复键值对的繁琐代码。此外,我们还考虑了几个使用这个方法的实例,来更好地理解它是如何使用的。