目录
字典
- Phython内置的数据结构之一,与列表一样是一个可变序列
- 以键值对的方式存储数据,是一个无序序列
字典名={ 键1: 值1, 键2: 值2, ... , 键n:值n }
- 字典的实现原理是根据键查找值所在的位置,即 hash(key)=value
一、字典的创建与删除
1.1 字典的创建
- 使用花括号{}
- 使用内置函数dict()
'''使用{}创建字典'''
scores={'小王':80,'小李':55,'小张':98}
print(scores,type(scores))
'''使用内置函数dict()创建'''
student=dict(name='小王',age=22)
print(student)
'''创建空字典'''
d={}
print(d)
运行结果
二、字典的查询操作
2.1 字典元素的获取
- 使用[]
- .get()
- [] 取值和 get 取值的区别
- [] 取值,如果字典中不存在指定的 key,抛出 keyError 异常
- get() 方法取值,如果字典中不存在指定的 key,不会抛出异常而是返回 None,可以通过参数设置默认的 value 来代替 None
'''获取字典的元素'''
scores={'小王':80,'小李':55,'小张':98}
print(scores)
'''使用[]'''
print('小王的成绩:',scores['小王'])
'''使用get()方法'''
print('小王的成绩:',scores.get('小王'))
print('小七的成绩:',scores.get('小七'))
print('小七的成绩:',scores.get('小七','没有找到相关信息'))
运行结果
2.2 字典元素的判断
键 in 字典名
键 not in 字典名
2.3 字典元素的遍历
for 迭代变量 in 字典名:
循环体
- 注意:迭代变量实际上代表键值(key)
scores={'小王':80,'小李':55,'小张':98}
for i in scores:
print(i,scores.get(i))
运行结果
三、字典元素的增删改操作
3.1 字典元素的增加
字典名[键]=值
3.2 字典元素的删除
- del:删除指定的键值对(key-value)
del 字典名[键]
- clear():清空字典元素
字典名.clear()
3.3 字典元素的修改
字典名[键]=值
3.4 获取字典视图
- keys():获取字典中的所有key
- values():获取字典中的所有value
- items():获取字典中的所有key-value 每个键值对以元组的形式被获取
scores={'小王':80,'小李':55,'小张':98}
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))
values=scores.values()
print(values)
print(type(values))
print(list(values))
items=scores.items()
print(items)
print(type(items))
print(list(items))
运行结果
四、字典生成式
4.1 内置函数zip()
- 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表( zip打包时,会以元素最少的参数对象为基准,截去其余对象末尾多余的元素 )
items=['Fruits','Books','Others']
prices=[88,121,95]
lst=zip(items,prices)
print(list(lst))
运行结果
4.2 字典生成式
{ 表示字典key的表达式 : 表示字典value的表达式 for 自定义表示key的变量,自定义表示value的变量 in zip(可迭代对象) }
items=['Fruits','Books','Others']
prices=[88,121,95]
d={items:prices for items,prices in zip(items,prices)}
print(d)
运行结果
Flag:我要成为一个日更选手:)