python基础之字典
1.字典
数据类型划分:可变数据类型和不可变数据类型
不可变数据类型:元组,bool int str 可哈希
可变数据类型:list,dict set 不可哈希
dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。2.字典的增删改查
#字典的增删改查,# 增,直接用字典键值增加,有则修改值没有增加dic1 = { 'age': 18, 'name': 'huangjin', 'sex': 'male',}dic1['phone'] = 17678963254dic1['age'] = 20print(dic1) #{'phone': 17678963254, 'name': 'huangjin', 'age': 20, 'sex': 'male'}dic1.setdefault('Nation','汉族') #setdefault设置,有不操作,没有新建一个键,值没有复制则为Noneprint(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 18weight 75sex malename 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