|
|
|
|
移动端

2.2.8 字典(2)

《自学Python:编程基础、科学计算及数据分析》第2章Python 基础,在本章中,我们将学习Python 语言的基本使用,掌握Python 的基本使用方法,为后续的学习打下基础。本节为大家介绍字典。

作者:李金来源:机械工业出版社|2018-05-03 17:19

人工智能+区块链的发展趋势及应用调研报告


2.2.8 字典(2)

为了避免这种异常,我们可以使用字典的.get()方法代替索引。.get()方法接受两个参数key和default,其中default可以省略。该方法返回字典中键 key 对应的值,键不存在时,返回 default 指定的值。

改用.get()方法:

  1. In [28]: a.get("three") 

虽然看起来并没有返回任何结果,但事实上,这是因为.get()方法默认的 default参数为None,而IPython解释器在输出时自动忽略了None:

  1. In [29]: print a.get("three")   
  2. None 

我们可以通过传入第二个参数来改变 default参数的默认值:

  1. In [30]: a.get("three", "undefined")   
  2. Out[30]: 'undefined' 

(2).pop()方法

列表的.pop()方法可以删除并返回指定索引位置的元素,与之类似,字典的.pop()方法删除并返回指定键的值。不一样的地方在于,列表会对非法的索引值抛出异常,字典则不会。

.pop()方法也接受两个参数 key和 default,其中 default参数的默认值是 None。如果给定的键不存在,方法返回default参数指定的值:

  1. In [31]: a   
  2. Out[31]: {'one': 'this is number 1', 'two': 'this is number 2'}   
  3. In [32]: a.pop("two")   
  4. Out[32]: 'this is number 2'   
  5. In [33]: a   
  6. Out[33]: {'one': 'this is number 1'}   
  7. In [34]: a.pop('three', 'not defined')   
  8. Out[34]: 'not defined' 

也可以用del关键字删除字典中的元素:

  1. In [35]: del a['one']   
  2. In [36]: a   
  3. Out[36]: {} 

(3).update()方法

之前已经知道,可以通过索引来插入、修改单个键值对,但是如果想一次性更新多个键值对,这种方法就显得比较麻烦。字典提供了.update()方法来一次更新多个键值对。例如,将字典 b中的内容一次更新到字典 a中:

  1. In [37]: a = {"one": 2, "three": 3}   
  2. In [38]: b = {"one": 1, "two": 2}   
  3. In [39]: a.update(b)   
  4. In [40]: a   
  5. Out[40]: {'one': 1, 'three': 3, 'two': 2} 

可以看到,.update()方法会更新原来已有的键值对,同时添加原来没有的键值对。

(4).keys()方法

.keys()方法返回一个由所有键组成的列表:

  1. In [41]: a.keys()   
  2. Out[41]: ['three', 'two', 'one'] 

(5).values()方法

.values()方法返回一个由所有值组成的列表:

  1. In [42]: a.values()  
  2. Out[42]: [3, 2, 1] 

注意,虽然在这个例子中,.keys()方法返回的值跟.values()方法返回的值是一一对应的,但这个关系在一些情况下并不成立。

(6).items()方法

.items()方法返回一个由所有键值对元组组成的列表:

  1. In [43]: a.items()   
  2. Out[43]: [('three', 3), ('two', 2), ('one', 1)]  

6.使用 dict()初始化

除了通常的定义方式,还可以通过 dict()函数来初始化字典,dict()函数的参数可以是另一个字典,也可以是一个由键值对元组构成的列表:

  1. In [44]: dict([('three', 3), ('two', 2), ('one', 1)])   
  2. Out[44]: {'one': 1, 'three': 3, 'two': 2} 

此外,.update()方法也可以接受一个由键值对元组构成的列表代替字典。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络基础

本书全面系统地概括了计算机网络的基本理论,详细阐述了OSI模型与网络协议、网络规划与综合布线、对等网络与服务器/客户端网络、Intranet服...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊