What字典
键值对的集合,以键值对的方式存储数据
字典是一个无序的序列
字典的实现原理:通过哈希函数来计算存储位置从而找到value
字典的创建
1.使用花括号
例:scores={"Jack" : 100, "Mike" : 20 , "Jane" : 78}
2.使用内置函数dict()
例:dict{name="Jack", age=20}
字典的常用的操作
字典中元素的获取
1.使用中括号[]取值
例:scores['Jack']
2.使用get()方法
例:scores.get('Jack')
二者都是可以获取key相应的value
二者的区别:①[] 如果字典中不存在指定的key,输出keyError异常
②get()方法取值,如果字典中不存在指定的key,并不会输出keyError而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回。
例:print(scores.get('Malao',39)) #输出结果:39
key的判断
1.in -> 指定的key在字典中存在返回True -> 'Jack' in scores
2.not in -> 指定的key在字典中不存在返回True -> 'Marry' not in scores
字典元素的删除
1.del(删除指定的键值对) 例:del scores['Jack']
2.clear()(清空字典的元素) 例:scores.clear()
字典元素的增加
scores['Marry']=98,字典scores中就会添加 'Marry':98 这一键值对
字典元素的修改
scores['Marry']=100,修改了Mary的值为100
获取字典视图
scores={'Jack':100,'Mike':98,'Jane':69}
#获取所有的key
keys=scores.keys()
print(keys) #输出dict_keys(['Jack','Mike','Jane'])
print(type(keys)) #dict_keys类型
print(list(keys)) #将所有的key组成的视图转成列表
#获取所有的value
values=socres.values()
#类型:dict_values
#获取所有的键值对
items=scores.items()
#类型:dict_items
print(list(items)) #转换之后的列表元素由元组组成
字典元素的遍历
字典的特点
1.字典中所有元素都是一个键值对,key不允许重复,value可以重复
2.字典中的元素是无序的
3.字典中的key必须是不可变对象
4.字典也可以根据需要动态地伸缩
5.字典会浪费较大的内存,是一种使用空间换时间的数据结构
字典生成式
内置函数zip():用于将可迭代的对象作为参数,将参数中对应的元素打包成一个元组,然后返回由这些元组组成的列表