字典的简介
摘要:
1、字典的定义
2、字典与列表的不同
3、字典的组成
4、举例代码
01.字典的定义
1.1字典的定义
字典不是序列,是一种新的结构。字典属于一种新的数据结构,称为映射( Mapping )
字典的作用和列表类似,都是用来存储对象的容器
02.字典与列表的不同
2.1字典与列表的不同
序列是往列表里面存多个对像、多个数据。同样,在字典里也可以存多个数据。
不同之处在于列表存储数据的性能很好,但是查询数据的性能的很差。
例如:在列表里存储一万个员工信息,这些信息按照一定固定的顺序在列表中保存,这时需要从这个列表调出一个某位员工信息
有两种方式:
l 明确知道该员工的编号或者索引,可以通过该员工编号或者索引快速找出该员工信息
l 如果不知道该员工的编号或者索引的话,就需要把列表里的元素得一个一个的列出来,再然后去一个一个的找出该员工信息编号。
所以序列在需要快速查找信息时性能较差。
序列就像一本没有目录只有页码的书,序列只能通过索引来操作元素。
在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素,这里的名字和索引意思大致相同。在查询元素时,字典的效率是非常快的。
03.字典的组成
3.1字典的组成
在字典中可以保存多个对象,每个对象都会有一个唯一的名字。
这个唯一的名字,称其为键(Key),通过 Key 可以快速的查询Value
这个对象,称其为值(Value)。
所以字典,也称为叫做键值对(Key-value)结构,每个字典中都可以有多个键值对,而每一个键值对称其为一项( Item)。
04.举例代码
4.1创建代码
接下写一个代码,如下:
在 Code 里创建一个文件
# 字典 # 使用 { } 来创建字典 d={ } #创建了一个空字典,里面一项都没有 print(d ,type(d))
接下来执行,如图:
4.2语法结构
接下来向字典里添加项,如下:
#创建一个包含有数据的字典 #语法: #{key:value,key:value,key:value} 等于给每一个元素加了一个Key 名字 d={‘name’:‘孙悟空’}
这里写的时候不像列表 d={1,2,3}这样,但是在字典里有键值对结构,所以语法如下所示
#语法:
#{key:value,key:value,key:value} 等于给每一个元素加了一个Key 名字
d={‘name’:‘孙悟空’}
这时key叫name,而值value叫“孙悟空“。执行后如图:
接下来继续添加,如下:
d={‘name’:‘孙悟空’,‘age’:18,‘gender’:‘男’}
紧接着再执行,如下图:
#字典的值可以是任意对象
#字典的键可以是任意的不可变对象(int、str、bool、tuple…),像List 这样的可变对象就不可以。但是一般都会使用 Str ,很少用到别的类型,但不排除特殊情况。
4.3 字典的键不能重复
#字典的键是不能重复的,如果出现重复的后面的会替换前面的。
d={‘name’: ‘孙悟空’,‘age’:18,‘gender’:‘男’,‘name’:‘sunwukong ’}
执行后如图:
这里会发现 Name 重复了,后面的“sunwukong”会替换到前面的”孙悟空”
紧接着,这种写法格式不太清楚,可以将每一个项单独放到一行。如下:
d={ ‘name’: ‘孙悟空’, ‘age’:18, ‘gender’:‘男’, ‘name’:’sunwukong ’ }
像这种中括号是可以跨行的。再次执行如下图:
和上述写法执行后效果是一样的。
4.4获取字典里的值
操作方式和列表一样,只不过列表里用索引,字典里面用的键。
#需要根据键来获取值 print(d['name'])
执行后如图:
print(d[' age '])
保存后执行如图:
想要全部信息的话,可以像如下方形式写,保存后执行如图:
print(d['name'],d[' age '], d[' gender '])
这样就完成了,字典里面用名字获取信息,列表里用索引。因为在字典里名字具有意义,如 Name、Age、Gender 是具备意义的,就像一个目录,查询起来比较快。但是索引是没有意义的,就像页码一样。列表中没有序号是没有意义的
接下来还有一种情况,字典里没有该信息时,执行后查询后会报错,如下:
print(d[' hello '])
#如果使用了字典中不存在的键,会报错。
print(d[' hello ']) Key Error: ‘hello’