python字典setdefault方法和get方法使用实例

yipeiwu_com7年前Python基础

这篇文章主要介绍了python字典setdefault方法和get方法使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在python的字典对象中,可以直接使用键名获取键值,像这样:

>>> d = {"x":1,"y":2}
>>> d["x"]
>>> d["y"]
>>>

但如果键名不存在,则会报错:

>>> d["z"]
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
KeyError: 'z'
>>>

这就影响了代码的可执行性。不过可以使用get方法或者setdefault方法避免这种错误,两种方法的作用都是获取键的键值,如果键存在于字典中,则返回键值;如果字典中不存在这个键,则返回一个默认值(这个值默认是None,但可以自行设定),如下:

d = {"x":1, "y":2}
print(d.get("z"))
print(d.get("z",9))

输入结果如下:

None
9

可以看到,“z“这个键并不存在字典中,使用get方法获取时,就返回了None,第二次使用get方法时,设置了返回的默认值 9 。setdefault方法也是一样的。

d = {"x":1, "y":2}
print(d.setdefault("z"))
print(d.setdefault("z",9))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python利用openpyxl拆分多个工作表的工作簿的方法

python利用openpyxl拆分多个工作表的工作簿的方法

实现按目录拆分工作簿,源数据如下图 按目录拆分成N个文件。 上代码,没有找是否有整个sheet 复制的,先逐个cell复制解决问题。: # encoding: utf-8 """...

TensorFlow用expand_dim()来增加维度的方法

TensorFlow中,想要维度增加一维,可以使用tf.expand_dims(input, dim, name=None)函数。当然,我们常用tf.reshape(input, sha...

Python简单进程锁代码实例

先说说线程 在多线程中,为了保证共享资源的正确性,我们常常会用到线程同步技术. 将一些敏感操作变成原子操作,保证同一时刻多个线程中只有一个线程在执行这个原子操作。 我最常用的是互斥锁,也...

pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解

pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解

公式 首先需要了解CrossEntropyLoss的计算过程,交叉熵的函数是这样的: 其中,其中yi表示真实的分类结果。这里只给出公式,关于CrossEntropyLoss的其他详细细...

Python虚拟环境Virtualenv使用教程

virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够: 1. 在没有权限的情况下安装新套件 2. 不同应用可以使用不同的套件版本 3. 套件升级...