Python_字典的增、删、改、查

数据类型划分

不可变数据类型:    元组、bool、int、str                                                   (也称作  可哈希)

 可变数据类型:       list、dict、set(集合,集合可变,内元素不可变)    (也称作  不可哈希)                  

字典dict

       字典是python中惟一的的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无需存储的,且key必须是可哈希的。

        dict 优点:  字典当中的元素是通过键来存取的,而不是通过偏移存取。二分查找去查询,存储大量的关系型数据。

dict的增、删、改、查

增:   

1、直接键值对增加,没有相同k值时直接添加,k值已经存在,则v值覆盖。

2、通过 setdefault(self,k,v=None)添加,k值没有时,直接添加,k值已经存在,则不做任何改变,v值默认为 None

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
dic['age'] = 76
dic.setdefault('qw')
dic.setdefault('ty',45)

{'qw': None, 'sex': 'male', 'ty': 45, 'name': 'jin', 'age': 76}

删:
1、pop(self,k:_KT)    按键去删除,有返回值,如果k值本来存在,返回k值对应的v值,如果k值不存在,默认返回None,可以设置v值为任何形式。

2、popitem(self)              随机删除一个键值对,有返回值,元组形式出现,删除的键值对

3、clear                                清空字典

dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175}
print(dic.pop('age',))
print(dic.pop('ages',{'ssss':1}))
print(dic.popitem())
dic.clear()

18
{'ssss': 1}
('name', 'jin')
{}

改:

1、直接覆盖   

2、update()    dic_2.update(dic_1)      覆盖添加

dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175}
dic1 = {'as': 'qyqy', 'oipi': 45, 'age' : 13}
dic1.update(dic)
print(dic1)


{'as': 'qyqy', 'name': 'jin', 'high': 175, 'age': 18, 'sex': 'male', 'oipi': 45}

查:

1、直接根据k值查询,如果k值没有,会报错

2、for 循环,整体查

3、get(k,None)   dic_2 = dic_1.get ( k,v)   如果有k值,返回对应的v值,如果没有对应的k值,默认返回 None ,可以设定v值返回。

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
print(dic.keys(),type(dic.keys()))
print(dic.values(),type(dic.values()))
print(dic.items(),type(dic.items()))


dict_keys(['sex', 'name', 'age']) <class 'dict_keys'>
dict_values(['male', 'jin', 18]) <class 'dict_values'>
dict_items([('sex', 'male'), ('name', 'jin'), ('age', 18)]) <class 'dict_items'>

 

转载于:https://www.cnblogs.com/Chong-Yang/p/8074913.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值