字典
字典dict
数据类型划分:可变,不可变数据类型,两种。
不可变数据类型(可哈希):元组,bool,int,str
可变数据类型(不可哈希):list,dict,set
字典的key:必须是不可变数据类型,可哈希
value:任意数据类型
字典的优点:二分查找法
存储大量的关系型数据
特点:字典是无序的,3.6以上是有序的。
增
方法一
dic1 = { 'age':18,'name':'jin','sex':'male' } dic1['high'] = 185#没有键值对添加 dic1['age'] = 16#如果已有键,则将值覆盖
方法二setdefault()
添加一个已有的键值对,不会做任何改变;添加一个没有的才会添加。
dic1 = {'age':18,'name':'jin','sex':'male'} dic1.setdefault('weight',150) dic1.setdefault('age',16) print(dic1) 结果: {'age': 18, 'name': 'jin', 'sex': 'male', 'weight': 150}
删
方法一pop()
按键删除;有返回值(接收两个参数,一个默认为空)。返回删除的元素。如果没有的话,可以自定义一个提示(第二个参数)。
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1.pop('大哥','找不到此键')) 结果:找不到此键
方法二popitem()
py3.5随机删除,py3.6默认删除最后一个。有返回值,返回删除的键和值,元组类型。
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1.popitem())#py3.6默认删除最后一个。py3.5:随机删除 结果:('sex', 'male')
方法三del
dic1 = {'age':18,'name':'jin','sex':'male'} del dic1['age']#删除dic1里面age这个键值对,如果没有这个键值对会报错。 del dic1#删除dic1这个变量
方法四clear(),清空字典
dic1 = {'age':18,'name':'jin','sex':'male'} dic1.clear() print(dic1) 结果:{}
改
方法一
dic1 = {'age':18,'name':'jin','sex':'male'} dic1['age'] = 16 print(dic1) 结果:{'age': 16, 'name': 'jin', 'sex': 'male'}
方法二update()
把一个字典当中的键值对,覆盖、添加到另一个字典当中
查
方法一
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1['age'])#寻找一个叫age的键,如果没有会报错
方法二get()
按键查找,没有返回None,可以自定义提示。和删除的pop方法类似。
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1.get('age1','找不到此键'))#寻找一个叫age的键,如果没有会返回一个提示,默认为空。和删除的pop方法类似 结果:找不到此键
方法三
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1.keys())#输出dic1所有的键 print(dic1.values())#输出dic1所有的值 print(dic1.items())#输出dic1所有的键值对 结果: dict_keys(['age', 'name', 'sex']) dict_values([18, 'jin', 'male']) dict_items([('age', 18), ('name', 'jin'), ('sex', 'male')])
for k,v in dic1.items(): print(k,v) 结果:age 18 name jin sex male