dict {key:value}
键值对,映射类型
dict中的key,必须是不可变数据类型,可哈希
value:任意数据类型
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:不可更改,元组,bool,int,str 可哈希
可变数据类型:列表list,字典dict 不可哈希
优点:二分查找查询
存储大量的关系型数据
特点:3.5之前无序
dic = { 'name': ['大门', '小明'], 'py': [{'人数': '70', 'avg': '18'}], True: 1, (1, 2, 3): 'wuli', 2:'eref', } print(dic) #{'name': ['大门', '小明'], 'py': [{'人数': '70', 'avg': '18'}], True: 1, (1, 2, 3): 'wuli', 2: 'eref'}View Code
增加
dict1 ={'age': 18, 'name': 'r', 'sex':'femal' } dict1['high'] = 155 #没有键值对,添加 print(dict1) dict1['age'] = 16 #有键,则覆盖 print(dict1) ''' {'age': 18, 'name': 'r', 'sex': 'femal', 'high': 155} {'age': 16, 'name': 'r', 'sex': 'femal', 'high': 155} '''View Code
setdefault()有键值,不做改变,没有,增加
#{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': None} dict1.setdefault('weight',150) #{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150} dict1.setdefault('name','dh') print(dict1) #{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150}View Code
删除
pop() 有返回值,按键删除
print(dict1.pop('age')) print(dict1) # 18 # {'name': 'r', 'sex': 'femal'} print(dict1.pop('bsjh','没有此键')) #若不知道字典里有没有此键,则加个参数 print(dict1) # 没有此键 # # {'name': 'r', 'sex': 'femal'}View Code
popitem()随机删除,有返回值
dict1.popitem() print(dict1) #{'age': 18, 'name': 'r'}View Code
clear()清空
del(‘key’)/dict
修改
dict1['age']=18
update() 把一个字典,覆盖更新到目标字典中
dict2 ={ 'name': 'r', 'weight':'75' } dic ={'age': 18, 'name': 'r', 'sex':'femal'} dict2.update(dic) print(dic) print(dict2) # {'age': 18, 'name': 'r', 'sex': 'femal'} # {'name': 'r', 'weight': '75', 'age': 18, 'sex': 'femal'}View Code
查询
print(dict1.keys()) print(dict1.values()) print(dict1.items())
dict_keys(['age', 'name', 'sex'])
dict_values([18, 'r', 'femal'])
dict_items([('age', 18), ('name', 'r'), ('sex', 'femal')])
for i in dict1: #for i in dict1.keys(): print(i) '''age name sex''' for i in dict1.values(): print(i) '''18 r femal''' for i in dict1.items(): print(i) '''('age', 18) ('name', 'r') ('sex', 'femal')'''View Code
for k,v in dict1.items(): print(k,v) # age 18 # name r # sex femalView Code
v1 =dict1['name'] print(v1) print(dict1.get('name')) print(dict1.get('name1','NNN')) # r # r # NNNView Code
嵌套
dic = { 'name': ['alex','wusir','taibai'], 'py9':{ 'time':'1213', 'learn_money':19800, 'address':'CBD' }, 'age':21 } dic['age'] = 56 dic['name'].append('ritian') print(dic) {'name': ['alex', 'wusir', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 56} dic['name'][1] = dic['name'][1].upper() print(dic) #{'name': ['alex', 'WUSIR', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 21} dic['py9']['famel'] = 6 print(dic) #{'name': ['alex', 'wusir', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD', 'famel': 6}, 'age': 21}View Code
小结
dict: dict={'name:'alex'}
增: dict[‘age’]=21 存在就覆盖
dic.setdefault()没有就增加
删除:pop()按key删除,有返回值
clear()
del dic['name']
popitem()随机删除,返回时元组
改:update
查:
dic.keys() 键
dic.values() 值
dic.items() 键值对
for k,v in dic.items():
print(k,v)
get
dc.get(key,None)