字典的操作用法小总结
字典
dic = {'name':'Laonanhai', 'age':45, 'name_list':['反面教材','俊俊',....] }
基础数据类型之一,{} 以键值对的形式存储数据。
以key:value形式,映射,存储的大量的关系型数据。
数据类型的分类:
可变(不可哈希hash):list,dict,set, list = [11,222,333]
不可变(可哈希hash):str,tuple,int,bool name = 'alex'
容器类:
容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]]
非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]'
字典的key必须是不可变的数据类型,是唯一的,
hash算法:
字典的键通过hash表转换成数字,采用二分查找查询数字
字典的value可以是任意数据类型。
字典的查询速度非常快,存储的大量的关系型数据。
字典在python3.5包含3.5之前都是无序,但3.6之后是有序的。
# 键唯一
# dic = {
# 'name': 'alex',
# 'name': 'WuSir',
# }
# print(dic)
# 键必须是不可变得可哈希的数据类型
# dic = {
# 'name': 'alex',
# [1, 2, 3]: 'values',
# }
# print(dic)
4,字典的增删改查及其他操作
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
增
# dic['sex'] = 'LaddyBoy' # dic['name'] = 'Alex' 有则覆盖,没有就添加 # dic.setdefault('sex') # dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。 # dic.setdefault('name', 'alex') # print(dic)
删
pop
# print(dic.pop('age')) # 有返回值,返回的是键对应的值 # print(dic.pop('age1', '没有此键...')) # print(dic)
clear
# dic.clear() 清空字典 # print(dic)
popitem
# print(dic.popitem()) # 随机删除,有返回值,返回值为元组,里面是删除的键值对。 # print(dic)
del
# 1,删除整个字典 # del dic # 2,按照键删除键值对 # del dic['name'] # print(dic)
改
# 1, dic['name'] = 'Alex' 有则覆盖,没有就添加
update 两个字典的更新
# dic = {"name": "jin", "age": 18, "sex": "male"} # dic2 = {"name": "alex", "weight": 75} # dic2.update(dic) # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变 # print(dic) # {'name': 'jin', 'age': 18, 'sex': 'male'} # print(dic2) # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
查
# 1,dic['name'] # print(dic['name1'])
# 2,dic.get('name') # print(dic.get('name')) # print(dic.get('name1')) # print(dic.get('name1', 'sb没有此键'))
for循环 查询
# dic.keys(), dic.values(), dic.items() #类似于list但不是list的类型。
# print(dic.keys(),type(dic.keys())) # for key in dic.keys(): # print(key) # l_key = list(dic.keys()) # print(l_key)
# for value in dic.values(): # print(value) # l_value = list(dic.values()) # print(l_value)
# print(dic.items())
引入 分别赋值概念
# a, b = 1, 2 # a, b = ('alex', '34') # a, b = ['alex', '34']
# 有 如下 a = 1 b = 3,用一行代码将a b值互换。
# a = 1 # b = 3 # a, b = b, a
# for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')] # print(k,v)
字典的嵌套
PS
dic = { 'name_list': ['碗蓉', '俊俊', '爽妹'], 'status': None, 'personal_msg': { 'name': '反面教材', 'age': 25, 'hobby_list': ['抽烟', '喝酒', '烫头'], } }
# 1,给dic添加一个键值对,学校:老男孩 # dic['学校'] = '老男孩' # print(dic) # 2,将status对应的值改成True # dic['status'] = True # print(dic) # 3,给name_list对应的列表追加一个元素:平平 # print(dic['name_list']) # dic['name_list'].append('平平') # print(dic) # 4,给personal_msg对应的字典添加一个键值对sex:男 # dic2 = dic['personal_msg'] # dic2['sex'] = '男' # print(dic) # dic['personal_msg']['sex'] = '男' # print(dic) # 5,将hobby_list 对应的列表中的烫头改成唱歌。 # dic['personal_msg']['hobby_list'][-1] = '唱歌' # print(dic)