字典


字典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