2021-09-09
字典
课程介绍
1、什么是字典
2、字典的原理
3、字典的创建与删除
4、字典的查询操作
5、字典元素的增、删、改操作
6、字典推导式
57、什么是字典
1、什么是字典
python内置的数据结构之一,与列表一样是一个可变序列
以键值对的方式存储数据,字典是一个无序的序列
列表-单身-有序 字典-成对-无序
创建字典时,会用到hash函数计算字典的存储位置,
不可变序列:没法再原来的基础上继续添加内容,例如字符串,s='hello';s='helloworld' 指的是两个对象,而不是一个对象添加内容
58、字典的原理
2、字典的原理
实现原理与查字典类似,python中的字典根据key查找value所在的位置
hash(key)还计算存储位置对应的value
59、字典的创建
最常用使用花括号:{'张三':100}
使用内置函数dict():dict(name=‘jack’,age=20)
score={'张三':100,'李四':98} ##花括号创建
print(score)
print(type(score))
student=dict(name='jack',age=20)
print(student)
print(type(student))
d={} #空字典
print(d)
print(type(d))
60、字典元素的获取
第一种:[]
第二种:get
score={'张三':100,'李四':98,'王五':45}
print(score['张三']) # []来获取字典元素 不存在,会报错
print(score.get('张三')) # 调用get函数获取 不存在,不会报错,会返回None
print(score.get('麻七',99)) # 99是查找麻七不存在是 提供的默认值
61、字典的常用操作
key 的判断 in not in
字典元素的删除 del scores[‘张三’]
score={'张三':100,'李四':98,'王五':45}
print('张三' in score) # 判断key值在不在字典里
del score['张三'] # 删除指定的键值对
score.clear() # 清空字典的元素
score['陈六']=98 # 新增元素,一个键值对
score['陈六']=100 # 修改元素
62、获取字典视图的三个方法
key 获取字典所有的key
value 获取字典所有的value
items 获取字典中所有的keyu,value对
score={'张三':100,'李四':98,'王五':45}
keys=score.keys()
list(keys) #可以将提取的keys值转换成列表
print(type(keys))
values=score.values()
print(type(values))
list(values) #可以将提取的valus值转换成列表
score.items()
list(score.items()) ## 转换后的列表元素是由元祖组成的
63、字典元素的遍历
score={'张三':100,'李四':98,'王五':45}
for item in score : ## 遍历是对健的遍历
print(item,score[item],score.get(item)) #字典内元素不同的获取形式
64、字典的特点
key不允许重复,value可以重复
字典中的元素是无序的
字典中的健必须是不可变对象,
不可变对象:字符串、整数 可变对象:列表
字典可以根据需要动态的伸缩
字典会浪费较大的内存,是一种用空间换时间的数据结构
65、字典生成式
内置函数zip:将可迭代对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元祖组成的列表。
{item.upper():price for item,price in zip(items,prices)}
item.upper():字典key的表达式
price :字典value的表达式
item,price:自定义变量
zip(items,prices):可迭代对象
items=['Fruits','Books','prices']
prices=[96,97,85,100,200]
d={item.upper():price for item,price in zip(items,prices)}
##当两组不匹配式,医短的那组生成相匹配的元祖列表
print(d)
网友评论