本文Python版本为3.7.X,阅读本文之前需了解python字典的基本用法。

介绍

字典(dict)是Python中内置的一个数据结构,由多个键值对组成,键(key)和值(value)用冒号分隔,每个键值对之间用逗号(,)分隔,整个字典包括在大括号中({}),键必须是唯一的,值可以取任何类型,但是键必须是不可变类型,如字符串,数字或元组。

底层使用了hash表来关联key和value,dict是无序的。特点包括:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用的内存较多

所以,dict是一种以空间换取时间的数据结构,应用于需要快速查找的场景。

操作

常用方法

get()

返回指定键的值,如果key不存在,则返回默认值(默认为None),而不会报错,语法为dict.get(key)。

dict_1['age'] = 24  In [7]: print(dict_1.get('age')) 24  In [11]: print(dict_1.get('nama')) None  In [12]: print(dict_1['nama']) --------------------------------------------------------------------------- KeyError                                  Traceback (most recent call last) <ipython-input-12-ef61a380920e> in <module> ----> 1 print(dict_1['nama'])  KeyError: 'nama'

key in dict

使用in操作符来判断键是否存在于字典中,存在则返回True,否则返回False,语法为:key in dict。

In [15]: dict_1 Out[15]: {'name': None, 'age': 24, 'sex': None}  In [16]: print('name' in dict_1) True  In [17]: print('nama' in dict_1) False

在python 2中该功能使用has_key()方法实现。

items()

以列表形式返回可遍历的(键, 值)元组数组,语法为dict.items()。

In [18]: dict_1 Out[18]: {'name': None, 'age': 24, 'sex': None}  In [19]: print(dict_1.items()) dict_items([('name', None), ('age', 24), ('sex', None)])  In [20]: for key, value in dict_1.items():     ...:     print(key, value)     ...: name None age 24 sex None

keys()

以列表返回一个字典的所有键:dict.keys()

In [21]: dict_1 Out[21]: {'name': None, 'age': 24, 'sex': None}  In [22]: print(dict_1.keys()) dict_keys(['name', 'age', 'sex'])

values()

以列表形式返回字典中的所有值:dict.values()

In [27]: dict_1 Out[27]: {'name': None,