目录
什么是字典
[value1,value2] | 列表 | 都是可变序列, 可以进行增删改操作 | 有序序列 | 单个元素存储的 |
{key1:value1,key2:value2} | 字典 | 无序序列 | 以键值对形式存储的 |
字典是根据key查找value所在的位置
字典的创建
1.使用花括号创建字(冒号左边为键,冒号右边为值)
scores={'张三':100,'李四':50,'王五':99}
print(scores)
print(type(scores))#<class 'dict'>类型为字典
2.使用内置函数dic(),创建字典
#2.使用内置函数dic(),创建字典
student=dict(name='jack',age=20)
print(student)
#空字典
d={}
print(d)
字典元素的获取
1.使用 [ ]
scores={'张三':100,'李四':50,'王五':99}
#1.使用[]
print(scores['王五'])
#print(scores['陈六'])#KeyError: '陈六' 报错!
!!!注意,如果没有找到相应的key,则会报错 KeyError
2.使用get(),获取字典的值
scores={'张三':100,'李四':50,'王五':99}
#2.使用get()函数,获取字典的元素
print(scores.get('王五'))
print(scores.get('陈六'))#None 不会报错
print(scores.get('陈六',77))#如果KeyError,则输出默认值77
!!!注意,同样地,没有找到相应的key,则会输出None,不会报错
特别地,print(scores.get('key',value))#如果KeyError,则输出默认值value
字典的常用操作
这里字典名用scores代替
1.key的判断
in/not in
scores={'张三':100,'李四':50,'王五':99}
print('张三' in scores)
print('张三' not in scores)
2.key-value对的删除
del scores[key]
#key-value对的删除
del scores['张三']
print(scores)
3字典的清空
scores.clear()
#字典的清空
scores.clear()
print(scores)
4.字典的元素的增加和修改
scores[key]=value
#新增元素
scores['陈六']=100
print(scores)
#修改元素
scores['陈六']=98
print(scores)
5.获取字典的视图
获取所有的key | scores.keys |
获取所有的value | scores.values |
获取所有的key-value对 | scores.items |
scores={'张三':100,'李四':50,'王五':99}
#获取所有的key
keys=scores.keys()
print(keys)
print(type(keys))#<class 'dict_keys'>
print(list(keys))#使用一个list()函数,创建一个列表存放所有的key
#获取所有的value
values=scores.values()
print(values)
print(type(values))#<class 'dict_values'>
print(list(values))
#获取所有key-value对
items=scores.items()
print(items)
print(type(items))#<class 'dict_items'>
print(list(items))#[('张三', 100), ('李四', 50), ('王五', 99)] 元组()
6.字典元素的遍历
字典也是一个可以循环的序列,所有可以用for循环遍历
#字典元素的遍历
scores={'张三':100,'李四':50,'王五':99}
for item in scores:
print(item)#注意,此时打印的是字典中所有的key
print(scores.get(item))
字典的特点
1.key不可以重复,value可以重复
2.字典中的元素是无序的
3.字典中的key必须是不可变对象
4.字典可以动态伸缩
5.字典会浪费较大的内存
字典生成式
有两个列表lst1,lst2,将其合成为一个字典new_dictionary(一个作为key,一个作为value)
new_dictionary={key:value for key,value in zip(lst1,lst2) }
items=['Fruits','Books','Others']
prices=[20,32,54]
d={item : price for item,price in zip(items,prices)}
print(d)