今日内容大纲:
1. 字典的增删改查以及其他操作 2. 字典的嵌套
1. 字典的增删改查以及其他操作
dic = {'太白':{'name': '太白', 'age': 25, 'sex': '男'}, 'name_list': ['无双', 'alex', 'BlameK']} dic = {'name': '太白', 'age': 18, 'sex': '男', 'job': 'IT'}
增
第一种: 有key就改,没有key就直接添加 dic['sex'] = '女' dic['name'] = 'alex' 第二种: setdefault: 有这个key则不做任何操作但是返回对应的值,没有key就添加 dic.setdefault('sex') dic.setdefault('hobby', '讲课') dic.setdefault('name','alex') print(dic.setdefault('name')) print(dic)
删
pop 通过键去删除键值对,也有返回值. 如果没有此键, 并且设置了第二个参数,则不会报错,并且返回第二个参数 print(dic.pop('name')) print(dic.pop('name1', None)) print(dic.pop('name1', '没有此键...')) print(dic) popitem: python3.5 之前随机删除某个键值对, python3.6 之后删除最后一组键值对,有返回值 print(dic.popitem()) print(dic) clear 清空(把dic中内容清空,不是删除dic) dic.clear() print(dic) del 按照键删除键值对 del dic['name'] 删除整个字典(直接删除dic) del dic print(dic) name 'dic' is not defined
改
第一种: dic['age'] = 25 print(dic) 第二种: 两个字典 update dic = {'name': 'jin', 'age': 18, 'sex': 'male'} dic2 = {'name': 'alex', 'weight': 75} dic.update(dic2) 将dic2中的所有键值对覆盖并添加到dic中,dic2不变 print(dic) print(dic2) dic.update(a='666', b='222', name='taibai') print(dic)
查
print(dic['name']) print(dic['name1']) 报错 print(dic.get('name')) jin print(dic.get('name1')) None print(dic.get('name1', '没有此键...')) dic.keys() print(dic.keys(), type(dic.keys())) 类似于列表的容器中 l1 = list(dic.keys()) 可以转化成list print(l1) for key in dic.keys(): print(key) dic.values() 可转化成list, 可遍历 print(dic.values()) print(list(dic.values())) dic.items() 可转化成list,可遍历 print(dic.items())
分别赋值
a, b = 10, 20 print(a, b) a, b = [10, 20] print(a, b) a, b = [(1, 2), (3, 4)] print(a, b) a = 10 b = 20 a, b = b, a print(a, b) dic = {'name': 'jin', 'age': 18, 'sex': 'male'} for i in dic.items(): print(i) 结果: ('name', 'jin') ('age', 18) ('sex', 'male') for k, v in dic.items(): print(k, v) 结果: name jin age 18 sex male for i in dic: print(i) 结果: name age sex print(len(dic)) 3
2. 字典的嵌套
dic = {'name_list': ['王双', 'alex', '孙飞', 'taibai'], 1: {'name': 'taibai', 'age': 18, 'sex': '男'}, (1, 2): [100, {'ip':'192.168.1.1', 'port': 3306}] } 1. 给name_list对应的列表追加一个值:司徒大人 dic['name_list'].append('司徒大人') 2. 将name_list对应的alex变成全部大写 dic['name_list'][1] = dic['name_list'][1].upper() 3. 将1对应的字典添加一个键值对:weight:75 dic[1]['weight'] = 75 4. 将1对应的字典的name键对应的名字taibai换成alex dic[1]['name'] = 'alex' 5. 将{'ip': '192.168.1.1', 'port': 3306}此字典的port键值对删除 dic[(1, 2)][1].pop('port')