字典:python中唯一一个映射数据类型
按照可变与不可变分类:
可变:list dict set
不可变: int str boor tuple
key : value
key:是唯一的,且不可变的数据类型
value:任意数据类型
在3.5版本之前,字典是无序的,3.6是有序的
增:
#① dic = {"name":"刘林","age":23,"sex":"man"} dic["name1"]= "liulin" print(dic) #输出:{'name': '刘林', 'age': 23, 'sex': 'man', 'name1': 'liulin'}
#② dic = {"name":"刘林","age":23,"sex":"man"} dic.setdefault("name1","liulin") print(dic) #输出:{'name': '刘林', 'age': 23, 'sex': 'man', 'name1': 'liulin'}
删:
#①按key删,有返回值 dic = {"name":"刘林","age":23,"sex":"man"} dic.pop("name","没有此项内容") print(dic) #如果name不在字典里,并且不写”没有此项内容“,则会报错
#②clear 清空 dic = {"name":"刘林","age":23,"sex":"man"} dic.clear() print(dic) #输出:{}
#③del #删除字典 dic = {"name":"刘林","age":23,"sex":"man"} del dic #删除键值对 dic = {"name":"刘林","age":23,"sex":"man"} del dic["name"] print(dic) #输出:{'age': 23, 'sex': 'man'} dic = {"name":"刘林","age":23,"sex":"man"} dic.popitem() print(dic) #随机删除,但是python3.5之后有序,所以默认删除最后一个,有返回值 #输出:{'name': '刘林', 'age': 23}
改 :dic["key"] = value key是字典里有的
#① dic = {"name":"刘林","age":23,"sex":"man"} dic["name"] = "liulin" print(dic) #输出:{'name': 'liulin', 'age': 23, 'sex': 'man'} #②update dic = {"name":"刘林","age":23,"sex":"man"} dic2 = {"name":"liulin","hobby":"basketball"} dic.update(dic2) print(dic) #将dic的键值对进行覆盖并添加到dic #输出:{'name': 'liulin', 'age': 23, 'sex': 'man', 'hobby': 'basketball'}
查
dic = {"name":"刘林","age":23,"sex":"man"} print(dic["name"]) #没有返回值,如果没有key,报错 #输出:刘林 #get 有返回值,没有key 返回nane dic = {"name":"刘林","age":23,"sex":"man"} print(dic.get("name",”返回值“)) #输出:刘林
分别赋值:a,b = 1,2
a=1 b=2
罗列所有key:
dic = {"name":"刘林","age":23,"sex":"man"} keys = dic.keys() print(keys) #输出:dict_keys(['name', 'age', 'sex'])
罗列所有值:
dic = {"name":"刘林","age":23,"sex":"man"} values = dic.values() print(values) #输出:dict_values(['刘林', 23, 'man'])
罗列所有键值对:
dic = {"name":"刘林","age":23,"sex":"man"} items = dic.items() print(items) #输出:dict_items([('name', '刘林'), ('age', 23), ('sex', 'man')])
循环:
dic = {"name":"刘林","age":23,"sex":"man"} for i in dic: print(i) #输出key for k in dic.keys(): print(k) #输出key for v in dic.values(): print(v) #输出value items = dic.items() print(items) #输出:dict_items([('name', '刘林'), ('age', 23), ('sex', 'man')])
字典嵌套
dic = { 'name':'金鑫', 'name_list':[1,2,3,'李杰'], 1:{ 'python10':['小黑','萌哥'], '老男孩':{'name':'oldboy','age':56} } } #1,[1,2,3,'李杰']追加'wusir' #2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥 #3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人 l = [1,2,3] # print(l.append('wusir')) # print(l) # dic['name_list'].append('wusir') # print(dic) # l = dic[1]['python10'] # l.insert(1,'花哥') # print(dic) # dic1 = dic[1] # dic2 = dic1['老男孩'] # dic2['hobby'] = '男人' # dic[1]['老男孩']['hobby'] = 'man' # print(dic)