2021-09-10-P57-P65-字典-马士兵Python教

2021-09-10  本文已影响0人  FFwizard

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)
上一篇下一篇

猜你喜欢

热点阅读