1.概述
字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据,而且是Python中唯一的内建映射型数据结构。
![9c178ab91d541f7998b36cdf7560277f.png](https://i-blog.csdnimg.cn/blog_migrate/bc7b32baa97d2687a3657475c9657482.jpeg)
比如有一个小学生的期末成绩,语文:79,数学:80,英语:92。我们可以用一组列表表示科目,再用另一组列表表示成绩。但是这样,就硬生生把一个学生分成了两半,太残忍了!
为了保存这种映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。
形象地看,字典中 key 和 value 的关联关系如下图所示:
![2cdbef1d6d680855f6dc0daeef4e1047.png](https://i-blog.csdnimg.cn/blog_migrate/0ffe2f344da689052775781c3d2f9505.jpeg)
字典保存的关联数据
由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此一个字典型变量中的 key 不允许重复。
2.创建字典类型
程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 就是 Python 中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。
如下:
scores
上面程序中第 1 行代码创建了一个简单的 dict,该 dict 的 key 是字符串,value 是整数;第 4 行代码使用花括号创建了一个空的字典;第 7 行代码创建的字典中第一个 key 是元组,第二个 key 是整数值,这都是合法的。
需要指出的是,元组可以作为 dict 的 key,但列表不能作为元组的 key。这是由于 dict 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key。
那标量型变量可以作为字典的key么?这个是可以的,比如:
>>>
在使用 dict() 函数创建字典时,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。例如如下代码:
vegetables
如果不为 dict() 函数传入任何参数,则代表创建一个空的字典。例如如下代码:
# 创建空的字典
还可通过为 dict 指定关键字参数创建字典,此时字典的 key 不允许使用表达式。例如如下代码:
# 使用关键字参数来创建字典
上面粗体字代码在创建字典时,其 key 直接写 spinach、cabbage,不需要将它们放在引号中。
参考
https://www.runoob.com/python/python-dictionary.html
http://c.biancheng.net/view/2212.html