接python入门基础(一)列表
3.6、字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典是由键值对组成的,键值对之间用:隔开,用{}包裹起来;
字典查询速度比列表快,而且是无序的
student= {
'name': '小黑',
'sex': '男',
'addr: '河南省济源市北海大道32号',
'grade': '天蝎座',
'phone': '18612532967',
}
#以这个字典为例,讲一下字典的增删改查
增加键值对
student['ip']=04
student['age']=18
print(student)
student.setdefault('name','杨帆') #增加键值对
#这两个的区别:setdefault赋值的key如果已经存在,就不会再修改它的值了;
删除
student.pop('ip') #删除'ip'
print(student)
student.popitem() #随机删除某键值对
del stundet['ip']
print(student)
修改
student['addr']='北京' #对地址重新定义
dict={'身高':185}
student.update(dict) #将两个字典合并
print(student)
查找
print(student['身高']) #显示身高
print(student.get['爱好':'打球']) #如果查找的key在字典里灭有,为了
#避免报错,可以先用 get函数给一个默认值
print(student.values()) #显示所有键值
for i in student:
print(i) #这两行代码实现了字典的循环,就可以输出字典的全部key
print(student.key()) #也是显示字典的值,但是调用了一次方法
for k,v in student.items():
print(k,v) #显示所有键值对
字典的多层嵌套
all_stus = {
'xiaojun':
{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1,
'cars':['牧马人','911','野马','劳斯莱斯']
#五菱宏光
},
'hailong':{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 2
},
'yangfan':{
'sex': '男',
'shengao': '185',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 3,
'bags':{
'qianbao':['lv','ysl'],
'beibao':['coach','abc']
}
}
}
all_stus = {
'xiaojun':{},
'hailong':{},
'yangfan':{bags[],[]} #字典里嵌套字典,字典里又有列表
}
#给xiaojun加一辆五菱之光的车
all_stus['xiaojun'][cars].append='五菱之光'
#统计xiaojun一共有几辆车
print(len(all_stus['xiaojun'][cars]))
#修改yangfan的性别
all_stus['yangfan'][sex]='女'
#删除yangfan的lv包
all_stus['yangfan']['bags']['qianbao'].remove('lv')
del all_stus['yangfan']['bags']['qianbao'][0]
#两种方式都能删除