python学习之三 字典
字典(dict){}
字典是一种key-value的数据类型 字典的定义使用{},大括号,每个值用","隔开,key和value使用“:”分隔。字典是无序的。字典有2个优点
1.取数据方便 2.速度快
查 .get() []
infos = {'name':'小白', 'age':18, 'addr':'北京', 'sex':'男'} #查 .get 或者[] print(infos.get('name')) print(infos['name']) print(infos.get('da')) #如果key不存在的话,会出现None,用.get()方法更好 print(infos.get('da',110)) #如果key不存在的话,默认就是110 print(infos['da']) #如果key不存在会报错 KeyError: 'da'
增 [] .setdefault()
infos['phone'] = 123456 #增加一个key ,如果key存在的话,会修改原来的key对应的value infos.setdefault('小金库','2000w') #如果key存在的话,不会修改原来的key值 print(infos)
改[]
infos['name'] = '小黑' print(infos)
删 .pop() .popitem() del
infos.pop('name') #指定key来删除 infos.popitem() #随机删除 del infos['phone'] #指定key来删除 infos.clear() #清空字典 print(infos)
字典的循环
#直接循环字典的话,那么循环字典的key for p in people: print(p) #循环的时候,同时取key和value for k , v in people.items(): print(k,'===>',v) #
多层字典
people = { '天宇':{ 'age':18, 'money':200000, 'clothes':'100套', 'hzp':'n多', 'shoes':['nike','addis','lv','chanle'] }, '张流量':{ '金库':'2000w', 'house':['三环一套','4环2套'], 'cars': { 'japan':['普拉多','兰德酷路泽'], 'usa':['林肯','凯迪拉克','福特'], 'china':['五菱宏光','qq','红旗'] } } } print(people['张流量']['cars']['china'][1]) #取值qq print(people['天宇']['age']) #取天宇age people['天宇']['money'] = people['天宇']['money']+200 #给天宇加200 people['天宇']['shoes'].append('匡威') #给天宇shoes加匡威 print(people) people['张流量']['car']['usa'].append('牧马人') #给张流量usa加个牧马人 print(people)
字典小练习 注册用户
users = {'xiaohei':'123456','yangyafu':'456789'} #存放所有账号密码 #username #pwd #cpwd #print('xiaohei'in users) #字典里面用in来判断的话,只是判断key是否存在的 for i in range(3): username = input('账号:').strip() pwd = input('密码:').strip() cpwd = input('确认密码:').strip() if username =='' or pwd ==''or cpwd =='': print('用户名/密码不能为空') elif username in users: print('用户名已经被注册!') elif pwd !=cpwd: print('两次输入的密码不一致') else: print('恭喜注册成功!') #users.setdefault(username,pwd) #字典插入新的数据 users[username]=pwd #字典插入新的数据 break else: print('输入次数过多!') print(users)
字典排序
d = {'a':8,'b':2,'c':3} print(d.items()) #字典是无序的,直接对字典排序是不存在的 res = sorted(d.items(),key=lambda x:x[0]) #0是取元素下标 print(res) #[('a', 8), ('b', 2), ('c', 3)]