Python-字典(dict)

  字典是一种key-value的数据类型,字典里必须写Key和value;

  字典的优点是取数方便和速度快。

  字典的定义使用大括号{ },每个值用“,”隔开,key和value使用“:”分隔。

  value可以取任何数据类型,但key必须是不可变的,如字符串,数字或元组。

  创建一个字典infos:

infos = {
    'name':'黄1',
    'sex':'',
    'addr':'火星',
    'age':22
}

一、增加元素:

infos['phone']=15200000000   #增加key
infos.setdefault('小金库','200w')
infos.setdefault('name','黄2')  #如果key存在的话不会修改原来key的值
infos['name']='黄2'#如果key存在,会修改原来key对应的值
a={'K1':'V1'}
b={'K2':'V2'}
a.update(b)      #把b的元素加入到a的字典里
print(a)         #打印结果:{'K2': 'V2', 'K1': 'V1'}

 

二、删除元素:

infos.pop('name')  #指定key来删除
infos.popitem()   #随机删除一个key
del infos['phone'] #指定key来删除
infos.clear()      #清空字典

三、修改元素:

infos['name']='黄2'#如果key存在,会修改原来key对应的值

四、查找元素:

print(infos['sex'])   #key不存在会报错
print(infos.get('nam',110)) #如果取不到key的话,默认就是110

五、字典的内置方法:

print(infos.values())  #获取到字典所有的值
print(infos.keys())    #获取到字典所有的key
print(infos.items())   #获取到字典所有的key和值

六、循环(直接循环一个字典的话,循环的是key的值):

for p in people:
    print(p)
for k,v in people.items():  #循环的时候,同时取key和value
    print(k,v)

 

字典小练习:

  •   校验输入的账号密码
users = {}
for i in range(3):
    username = input('请输入账号:').strip()
    passwd = input('请输入密码:').strip()
    cpsswd = input('请再次输入密码:').strip()
    if username=='' or passwd=='' or cpsswd=='':
        print('用户名/密码不能为空')
    elif username in users:   #字典里面用in来判断的话,只是判断Key是否存在
        print('用户名已经被注册')
    elif passwd != cpsswd:
        print('两次输入的密码不一致')
    else:
        print('恭喜注册成功!')
        # users.setdefault(username,passwd)
        users[username] = passwd 
        break
else:
    print('错误次数过多')
print(users)
  •  录入学生作业情况

    1.查看学生作业情况;2.录入学生作业情况

homework = {
    '黄1':{
        '2018-6-6':'未交'
}
}

check = input('请选择:1.查看学生作业情况;2.录入学生作业情况')
if check =='1':
    for k,v in homework.items():  #循环取到所有的key和value
        print(k,v)
elif check =='2':
    for i in range(3):
        name = input('输入名字:').strip()
        time = input('输入时间:').strip()
        status = input('输入状态:').strip()
        if name=='' or time=='' or status=='':
            print('输入不能为空')
        else:
            if name in homework:  #判断name是否存在在字典里
                homework[name][time] = status   #二维字典赋值
                break
            else:
                homework[name] = {time:status}
                print('成功')
                break
print(homework)

 

posted @ 2018-03-29 16:42  小黄同学。  阅读(156)  评论(0)    收藏  举报