系列文章目录
一、字典是什么?
- Python内置的数据结构之一,与列表一样是一个可变序列
- 以键值对的方式存储数据,字典是一个无序的序列
scores={ '张三': 100, '李四' :98, '王五':45 }
#字典名,花括号,键:值
二、字典实现原理
字典的实现原理与查字典类似,查字典是先根据部首或拼音查找汉字对应的页码,Python中的字典是根据key查找value所在的位置
列表有序可变,元组有序不可变,字典无序可变,集合无序不可变
字典是无序 / 可变 序列(增删改)。而字典里的“键”是不可变序列,说白一点就是不允许“改名字”。
三、字典的创建、获取
创建
- 最常用的方式:使用花括号
scores={ '张三': 100, '李四' :98, '王五':45 }
- 使用内置函数dict()
dict( name='jack',age=20)
获取
①[],例如: scores['张三']
②get()方法 例如: scores.get(‘张三’)
- []取值与使用get()取值的区别
如果字典中不存在指定的key,抛出keyError异常
get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
四、字典的常用操作
- key的判断
in 指定的key在字典中存在返回True ‘张三’in scores
not in 指定的key在字典中不存在返回True ‘Marry’ not in scores - 字典的删除
del scores['张三']
- 字典元素的新增
scores[ 'jack' ]=90
-
获取字典视图
keys() 获取字典中所有key
values() 获取字典中所有value
items() 获取字典中所有key,value对 -
字典元素的遍历
for item in scores:
print( item )
五、字典特点
- 字典中的所有元素都是一个key-value对, key不允许重复, value可以重复
- 字典中的元素是无序的
- 字典中的key必须是不可变对象(字符串,整数)
- 字典也可以根据需要动态地伸缩
- 字典会浪费较大的内存,是一种使用空间换时间的数据结构
六、字典生成式
lst = ['aa','bb','cc','dd']
lst1=[1,2,3,4]
d={key:value for key,value in zip(lst,lst1) }
- 内置函数zip()
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表