文章目录
一、什么是字典
字典并不是什么全新的概念,早在上小学时,你就已经接触过字典,每当有不会在汉字是就会根据拼音在字典里找到与它对应的页数是,字典的结构和python语言中的字典,在结构上是一样的。
例如我 们以读音来查找一个汉字,比如"邓"这个字,读音是deng,一声,你一定可以在字典里找到与它对应的页数,假设是第100页,那么deng 和 100之间就有一个映射关系,你知道了deng,也就知道了100。
另一个较为常见的例子是手机通讯录,你想找一个人的电话时,你应该在通讯录里找到这个人的名字,然后点进去查看它的电话号,姓名和电话号之间存在着映射关系,你知道姓名,就知道电话号,下面这张图展示了字典的数据结构
二、字典(dict)的特点
-
python中的字典(dict)是数据的无序集合, 与列表,元组,集合将单个值作为存储数据不同, 字典存储的是key:value对, 字典中存储的数据总是成对的, key被称之为键, value称之为值, 值可以是任意数据且可重复, 而键不可重复且必须是可hash的。如果出现重复后面的会替换前面的数据。
-
字典属于一种新的数据结构,称之为映射(mapping)。
-
字典存储性能相对较差,但是查询数据性能较好。
-
每个字典当中都有多个键(key)值(value)对,每个键值对我们称之为一项(item)。
-
一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。
2.1 创建一个字典
2.1.1 创建字典
-
字典是一个容器类型数据,字典里存储的是键值对,键值对用冒号分割key与value,每个键值(key-value)对用逗号分割,整个字典包裹在花括号{}中。
-
字典的创建方法:
- 符号为大括号
- 数据为键值对形式出现
- 各个键值对之间用逗号隔开
-
下面是创建一个字典几种放法的示例
# 使用{} {key:value,key:value}
d = {
'name':'钢铁侠','age':'24','sex': '男'}
# name为键,又叫'key' 钢铁侠为值
print(d['name'],d['age'],d['sex'])
# 葫芦娃 10 男
# 空字典
d2 = {
}
# 使用dict() 函数来创建字典
d3 = dict(name = '钢铁侠',age = '24',sex = '男')
print(d3,type(d3))
# {'name': '钢铁侠', 'age': '24', 'sex': '男'} <class 'dict'>
- dict()函数也可以将一个包含有双值子序列的序列转换为字典。
- 双值序列:序列中只有两个值。例如:‘mk’、[4,5]、(‘a’,‘b’)。
- 子序列:序列中的袁术也是个序列,那么我们称这个元素为子序列。例如:[(‘w’,1),(1,2)]。
d4 = dict([('name','葫芦娃'),('age',10)])
print(d4,type(d4))
# {'name': '葫芦娃', 'age': 10} <class 'dict'>
print(d4['age'])
# 10
语法:d[key]可以根据字典的键来获取元素,但是key值要加上引号,不加引号就会把它当做变量来出来。
- 如果想知道字典中有多少数据,可以使用len函数来获取
print(len(d4