13.Python基础篇-Dict字典

字典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) # weight不存在,会添加到字典中
dic1.setdefault('age',16)  # age已存在,则不会添加,也不会修改
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()

把一个字典当中的键值对,添加到另一个字典当中。如果某些键已存在,则直接覆盖。

方法一:[key]

查找的键存在,则返回值。不存在则报错。

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方法类似

结果:找不到此键

 

方法三:keys,values,items

keys:访问字典中所有的key;values:访问字典中所有的value;items:访问字典中所有的键值对。

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')])

 

 items方法结合for循环使用,对字典进行遍历。

for k,v in dic1.items():
    print(k,v)

结果:age 18
name jin
sex male

 

 

 
posted @ 2021-08-25 17:06  邵杠杠  阅读(54)  评论(0编辑  收藏  举报