字典 && 字典的内置方法
简介
字典是一种可变类型,切可以存储任意类型的对象
字典的每个键值使用:分割, 每个键值对之间使用(,)分割 整个字典包括在花括号中,格式如下
d = {key1:value1 , key2:value2 }
注意: | 键必须是唯一的, 但是值不一定
注意: | 值可以是任何数据类型,但键必须是不可变的,如字符串,数字 或者元组
字典存在的意义
字典的数据不像是列表和元组 数据的查询依据为索引(索引信息量少) | 字典依赖于有描述的key来查询数据
python 中的字段,values是无序存储, 字典 增删插 效率高, python中对字典的key做客有序优化,所以查询效率也不算低
赋值
dict = {"name":"wuqiyu","age":25}
访问字典里的值
把相应的键放到方括号中,如以下示例
dict={"name":"wuqiyu","age":25}
print(f"your name is { dict['name'] }")
定义方式
内置方法
dict 快速转化为list
lis = list(d3.items())
print(lis) #[('age', 25), ('name', 'bob')]
print(type(lis)) #<type 'list'>
print(type(lis[0])) #<type 'tuple'>
增删改查
dict1 = {'name':'Tom','age':18}
#增
dict1['height']=180
#删
del dict1['age']
#改
dict1['name']='bob'
#查
print(dict1['name'])
总结 | 字段名[key] 不赋值;就是查,赋值key;不存在则是增,存在则是改 del命令 删除某个键值对
注意| 字典的value可以不存在,但是key绝对不可以不存在,否则报错
get | 取出key对应的值,如果值不存在,则取出none ,或者取出默认值
d1 = {"k1":"v1","k2":"v2"}
print(d3.get('name')) #bob
print(d1.get("name")) #none
print(d1.get("name",'nobody')) #nobody
update | 存在key则覆盖内容,不存在则增加内容(可以增加多条)
d1.update({"x":1,"Y":2,"Z":3})
print (d1)
#{'Y': 2, 'k2': 'v2', 'k1': 'v1', 'Z': 3, 'x': 1}
pop | 弹出指定key的key && value
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
print(dict1.pop('h2')) #从后往前pop
print(dict1.popitem()) #不需要指定参数 弹出最后一个
print(dict1)
clear | 清空字典
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
print(dict1.clear())
print(dict1)
for | 循环
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
for k in dict1: #取出了所有的key(键)
print(k)
#等同于
for k in dict1.keys():
print(k)
[图片上传失败...(image-edbf68-1573700647650)]
#取出所有的v(值)
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
for v in dict1.values():
print(v)
#取出所有的键和值
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
for v in dict1.items():
print(v)
print(type(v))
[图片上传失败...(image-ef789a-1573700647650)]
#分别取出字典的key和value 赋值给两个不同的变量名(解压缩)
dict1={"name":"wuqiyu","age":25,'h1':"唱","h2":"跳"}
for keys,values in dict1.items():
print(keys,values)
print(type(keys))
print(type(values))