python学习_基础类型3_字典

字典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)

猜你喜欢

转载自blog.csdn.net/sylvia2016/article/details/80289751