字典dict
#1.什么是dict?
字典是key - value形式, 没有下标且是无序的, 它能够快速查找。
字典定义是{}, 每个值用“,”隔开,key和value使用“:”分隔
infos = { 'name': '明明', 'age': '18', 'sex': '男', 'addr': '北京' }#定义一个dict print(infos)
#2.dict常用操作
# 字典_增
infos.setdefault('age', '2000w')# 增加一个key, 且key存在的话, 不会修改原来的值 infos['age'] = 13611087045# 增加一个key, 且key存在的话, 会修改原来的值# 字典_改
infos['name'] = '药师'# 字典_查
print(infos.get('name'))#获取key=name的value, 如果key不存在会返回默认值:None print(infos.get('me', 110)) # infos.get()如果查找不到对应key, 返回指定的默认值:110 print(infos['name'])#获取key=name的value, 如果key不存在会报错。dict.get()比dict[]好用# 字典_删除
infos.pop('name')#指定key删除key:value infos.popitem()#随机删除一个key:value del infos['addr']#指定key删除key:value infos.clear()# 清空dict# 3.dict常用内置方法
print(infos.values()) # 获取字典所有value print(infos.keys()) # 获取字典所有key print(infos.items()) # 获取字典所有key和value infos.update({'dong':'sriba'})#更新dict值, 如果key存在就更新, 不存在就添加#4.循环打印字典
dic={'stu1':'cc','stu2':'andashu','stu3':'niuniu'} for k in dic: print(k,dic[k])#打印key和value, 推荐, 因为速度快 for k,v in dic.items(): print(k,v)#打印key和value, 不推荐, 因为会把dict转换成list, 效率不高# 字典_小练习_1
people = { '田Tia': { 'age': 18, 'money': 200000, 'shoes': ['nike', 'addis', 'lv', 'chanle'] }, '张Can': { '金库': '2000w', 'house': ['三环一套', '4环2套'], 'cars': { 'japan': ['普拉多', '兰德酷路泽'], 'usa': ['林肯', '凯迪拉克', '福特'], 'china': ['五菱宏光', 'qq', '红旗'] } } } print(people['张Can']['cars']['china'][1])# 打印qq print(people['田Tia']['shoes'][2])# 打印lv print(people['张Can']['cars']['usa'])# 打印usa对应的value people['田Tia']['money'] += 200 print(people['田Tia']['money'])# 给田Tia的money增加200块 people['田Tia']['shoes'].append('fossil') print(people['田Tia']['shoes'])# 给田Tia加一双化石的鞋子 people['张Can']['cars']['usa'].append('牧马人') print(people['张Can']['cars']['usa'])# 给张Can加一辆名为'牧马人'的usa车子# 字典_小练习_2
users = { 'niuhanyang': '123456', 'yayafu': '456789' } print('niuhanyang' in users)# 'niuhanyang'字典里用in判断的话, 只判断key是否存在, 不会判断value print('123456' in users) for i in range(3): username = input('账号:').strip() passwd = input('密码:').strip() cpasswd = input('确认密码:').strip() if username == '' or passwd == '' or cpasswd == '': print('用户名/密码不能为空') elif username in users: print('用户名已经被注册!') elif passwd != cpasswd: print('两次输入密码不一致') else: users.setdefault(username, passwd) # as same as # users[username]=passwd print('恭喜, 注册成功!') break else: print('错误次数过多!') print(users)