# 陌言
# 开发时间:2021/8/8 15:10
#字典的创建方式
#第一种:使用{}创建字典 (:)后面同一组数据的值。(,)隔开之后是另一组数据
scores={'张三':100,'李四':98,'王五':45}
print(scores)
#第二种: 使用内置函数dict()
student=dict(name='jack',age=20)
print(student)
#空字典
d={}
print(d)
#获取字典的元素
#第一种:使用[]
print(scores['张三'])
#print(socres['sd']) 报错
#第二种:使用get()
print(scores.get('张三'))
print(scores.get('sd')) #None
print(scores.get('ad',99)) #99 #在查找指定键不存在时,返回默认值:99
#二者区别,若字典中不存在该键 第一种会报错 第二种则会输出None
#可用in / not in判断该键是否存在于字典之中
print('张三' in scores) #True
print('张三' not in scores) #False
#字典元素的删除
del scores['张三'] #删除指定的key-value对
#scors.clear() #清空字典中的所有元素
print(scores)
#新增元素
scores['陈六']=98
print(scores)
#修改元素
scores['陈六']=100
print(scores)
print('\n')
#获取字典中的所有key
keys=scores.keys()
print(keys)
print(type(keys))
#获取字典中所有的value
values=scores.values()
print(values)
print(type(values))
print(list(values)) #转换成列表中的元素
#获取所有的key-value对
items=scores.items()
print(items)
print(list(items)) #()为一组元祖,转换之后的列表元素由元祖组成
print('\n')
#字典元素的遍历
for item in scores: #item获取的是字典当中的key
print(item)
print(scores.get(item))
ds={'name':'张三','name':'李四'}
print(ds) #'name':'李四' #key不能重复否则只会显示最后一个
#字典生成式
items=['Fruits','Books','Others']
prices=[123,321,432]
d={item.upper():price for item,price in zip(items,prices)} #.upper()是转换成大写。。
'''在进行zip压缩时会以短的为基准进行压缩 例如prices=[123,321,432,121]最后结果仍相同第四个元素被舍去了'''
print(d)
#字典的特点:
''''
字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
字典中的元素是无序的 #无法进行类似列表的插入操作
字典中的key必须是不可变对象
字典也可以根据需要动态地收缩
字典会浪费较大的内存,是一种使用空间换时间的数据结构
'''
结果: