python对dict的操作

字典的优点:

1、取数据方便
2、速度快

字典dict的格式为:{'key' : 'value' , 'key' : 'value'}

字典可嵌套,如:{‘name’ : {"high‘:’100','sex':'male'}}

字典的方法:

#方法
print(infos.values())#获取到字典所有的value
print(infos.keys()) #获取到字典所有的key
print(infos.items()) # 获取字典所有的key-value

 

字典的操作:

#查
print(infos.get('phone'))#取不到这个key的话,就是None
print(infos.get('phone',110))#如果取不到这个key的话,默认就是110
print(infos['phone'])#如果key不存在会报错
infos = {'name':'张流量','sex':'男','addr':'火星','age':180}
infors['k'] #如果“k”不存在这个key会报错

#增
infos['phone']=13611087045 #增加一个key
infos.setdefault('小金库','2000w')
infos.setdefault('name','鹏妹妹') #如果key存在的话,不会修改原来key里面的值
a.update(b) #把b字典的值加入到a字典中,如果key存在的话,会更新key的值

infos['name']='鹏妹妹' #如果key存在的话,会修改原来key对应的value
homeworks.setdefault(name,{date:statue}) #嵌套数据增加数据

# print(infos)
#字典是无序的


#修改
infos['name']='鹏妹妹'

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

示例:
people = {
    '田雨':{
        'age':18,
        'money':200000,
        'clothes':'100套',
        'hzp':'n多',
        'shoes':['nike','addis','lv','chanle']
    },
    '张流量':{
        '金库':'2000w',
        'house':['三环一套','4环2套'],
        'cars':    {
                'japan':['普拉多','兰德酷路泽'],
                'usa':['林肯','凯迪拉克','福特'],
                'china':['五菱宏光','qq','红旗']
            }
    }
}
people['张流量']['cars']['usa'].append('牧马人')

people['田雨']['shoes'].append('匡威')
print(people)
people['田雨']['money'] = people['田雨']['money']+200
people['田雨']['money'] += 200
print(people)
#直接循环一个字典的话,那么循环的是字典的key
for p in people:
    print(p)
for k,v in people.items():  #循环的时候,同时取key和value
    print(k,'======》',v)
View Code

 

示例:

#!/user/bin/python
# -*-coding:utf-8 -*-

homeworks = {
    '张流量':{'2018.3.22':"未交",'2018.3.23':'wei交'},
    '田雨':{'2018.3.22':"未交",'2018.3.23':'wei交'}
}

for i in range(3):

    choose = input("请选择你的操作:\n"
              "1录入学生情况\n"
              "2查看学生情况\n").strip()

    if choose == '1':
        date = input("录入日期:")
        name = input("学生姓名:")
        statue = input("已交/未交:")
        if date.strip() == '' or name.strip() == '' or statue.strip() == '':
            print("录入内容不允许为空")
            continue
        else:
            print (homeworks.keys())
            #判断输入的名字是否在字典中,已有,只添加日期和状态
            if name in homeworks.keys():
                homeworks[name].setdefault(date,statue)
            else:
                # 判断输入的名字是否在字典中,没有,添加整条数据,setdefault的使用格式:setdefault(str,str)
                homeworks.setdefault(name,{date:statue})
            print(homeworks)
    if choose == '2':
        select = input("选择学生姓名:")
        for i in homeworks.keys():
            if select == i:
                print(homeworks[select])
                break
        else:
            print("没有这个学生")
View Code

 

posted @ 2018-03-29 17:54  故人心  阅读(258)  评论(0)    收藏  举报