字典增删改查
一 字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,3.6版本之后字典是有序的(3.5版本之前字典是无序的),且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,3.6版本之后字典是有序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
增:setdefault:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
dic = { 'name':'烟雨江南', 'age':18, 'sex':'man' } 增 dic['hobby'] = '看书' # 有则修改,无则添加 print(dic) dic.setdefault('hobby','玩游戏') # 有则不变,无则添加 print(dic)
删:pop、clear、popitem、del
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
dic = { 'name':'烟雨江南', 'age':18, 'sex':'man' } ret = dic.pop('name') # 按照键删除键值对,并返回删除的值 ret = dic.pop('name1','删除的对象不存在') # 设置两个参数,第二个参数是提示语,一般设置为None;键不存在也不会报错 print(ret) dic.clear() # 清空字典 dic.popitem() #3.6版本之后删除最后一个键值对 print(dic) del dic['name'] # 按照建删除 print(dic)
改:update
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
dic = { 'name':'烟雨江南', 'age':18, 'sex':'man' } dic['name'] = 'jj' print(dic) dic.update(name = 'TSL',money=10000) #更新:有则覆盖,没有则添加 print(dic) dic = {"name": "jin", "age": 18, "sex": "male"} dic2 = {"name": "alex", "weight": 75} dic2.update(dic) # 将dic里面的键值对覆盖添加到dic2中
查:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
dic = { 'name':'烟雨江南', 'age':18, 'sex':'man' } print(dic['age']) # 若不存在会报错 dic.get('age') # 没有此键默认返回None print(dic) ret = dic.get('age1','此键不存在') # 键不存在,可设置提示语 print(ret)
二 字典的其他操作:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
dic = { 'name': '太白金星', 'age': 18, 'hobby': 'wife', } # 查看键 res = dic.keys() # 查看字典中所有键 print(res,type(res)) # <class 'dict_keys'> 该类型可以循环遍历 for i in res: print(i) print(list(res)) # 也可以通过list转化为列表 ------------------------------------------------------------- # 查看值 res1 = dic.values() # 查看字典中所有值 print(res1,type(res1)) # <class 'dict_values'> 该类型可以循环遍历 for i in res1: print(i) print(list(res1)) # 也可以通过list转化为列表 ------------------------------------------------------------- #查看键值对 res2 = dic.items() print(res2,type(res2)) # 查看字典中所有键值对 for i in res2: print(i) print(list(res2)) # 也可通过list转化为列表:[('name', '太白金星'), ('age', 18), ('hobby', 'wife')]
——>创建字典7种方式:https://www.cnblogs.com/jiazeng/p/10644030.html