python基础之字典
1.字典
数据类型划分:可变数据类型和不可变数据类型
不可变数据类型:元组,bool int str 可哈希
可变数据类型:list,dict set 不可哈希
dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。
2.字典的增删改查
#字典的增删改查, # 增,直接用字典键值增加,有则修改值没有增加 dic1 = {'age': 18, 'name': 'huangjin', 'sex': 'male',} dic1['phone'] = 17678963254 dic1['age'] = 20 print(dic1) #{'phone': 17678963254, 'name': 'huangjin', 'age': 20, 'sex': 'male'} dic1.setdefault('Nation','汉族') #setdefault设置,有不操作,没有新建一个键,值没有复制则为None print(dic1) #删除 # print(dic1.pop('age')) #一处键,返回键值为20,可以设置返回为None # print(dic1.pop('二哥', None)) # 可设置返回值 返回值为None # print(dic1) #{'Nation': '汉族', 'name': 'huangjin', 'sex': 'male', 'phone': 17678963254} #print(dic1.popitem()) # 随机删除 有返回值 返回的元组里面是删除的键值 # del dic1['name'] #直接删除键值 # del dic1 #删除字典 # print(dic1) # dic1.clear() #清空字典 #改,直接对键赋值,update更新 dic = {"name":"jin","age":18,"sex":"male"} dic2 = {"name":"alex","weight":75} dic2.update(dic) # print(dic1.keys(),type(dic1.keys())) # print(dic1.values()) # print(dic1.items())
3.字典的for循环遍历
三种方式:遍历键,遍历值,遍历键值
dic = {'sex': 'male', 'name': 'jin', 'weight': 75, 'age': 18} key = [] for i in dic.keys(): #遍历键 key = ['weight', 'age', 'name', 'sex'] key.append(i) val = [] for i in dic.values():#遍历值val = [75, 18, 'jin', 'male'] val.append(i) dic_list = [] for i in dic: #默认遍历键 dic_list = ['weight', 'age', 'name', 'sex'] dic_list.append(i) print(key,val,dic_list) for k,v in dic.items(): #遍历键值 print(k,v) ''' age 18 weight 75 sex male name jin '''
字典嵌套:即字典中还有字典,如需修改,字典按键值,嵌套列表按列表索引值
dic = { 'name':['huangjin','baiyin','bojin'], 'fav':{ 'girl':'多多的', 'money':'无穷的', }, 'age':21, 'nation':'布依族' } #修改黄金为钱 dic['name'][0] = '钱' print(dic) #{'age': 21, 'fav': {'girl': '多多的', 'money': '无穷的'}, 'nation': '布依族', 'name': ['钱', 'baiyin', 'bojin']} #修改girl为苗条的 dic['fav']['girl'] = '苗条' print(dic)#{'name': ['钱', 'baiyin', 'bojin'], 'fav': {'money': '无穷的', 'girl': '苗条'}, 'nation': '布依族', 'age': 21}
注意:Python3.6以后字典默认是有序的,pytho3.5以前的字典都是无序,别问我为什么知道
4.总结
python中主要还是字符串,列表,字典之间的转换,需要熟练掌握常用方法,排序等等,Py3.5及以前版本如需使用有序字典需要导入OrderedDict