字典
#key -value
#string lis dict
#1、取数据方便
#2、速度快
infos={'name':'张流量','sex':'男','addr':'火星','age':'18'}
print(infos.get('name')) #获取value值
print(infos['name']) #获取value值
#区别
d['k'] #查询不到会报错
d.get('k')
print(d.get('k',-1))
#查询不到会报none,获指定默认值
#输入1个不存在的key
print(infos.get('name1')) #获取value值 直接取的None
print(infos.get('name1',110)) #获取value值 如果取不到,默认取110
print(infos['name2']) #获取value值 直接报错
#字典是无序的,因为他不需要用下标取值
#增加
infos['phone']=13347483767 #增加一个key
infos.setdefault('money','2000') #增加一个key
infos.setdefault('name','3000') #name值是原有的,用setdefalut修改后无变化
infos['name']='于萍' #name值是原有的,用中括号修改后变化成修改后的值
print(infos)
#字典类型合并,字典类型合并是不适用于加符号的
a={"k1":"v1"}
b={"k2":"v2"}
a.update(b)
print(a)
#删除
infos={'name':'张流量','sex':'男','addr':'火星','age':'18'}
infos.pop('name')
#结果:{'sex': '男', 'addr': '火星', 'age': '18'}
#随机删除
infos.popitem()
del infos['sex'] #指定key删除
print(infos)
#查询infos={'name':'张流量','sex':'男','addr':'火星','age':'18'}
print(infos.values())
print(infos.keys())
print(infos.items())
结果:
dict_values(['张流量', '男', '火星', '18'])
dict_keys(['name', 'sex', 'addr', 'age'])
dict_items([('name', '张流量'), ('sex', '男'), ('addr', '火星'), ('age', '18')])
字典取值小练习
people={'于萍':
{'age':19,
'sex':'girl',
'car':['一汽大重','五菱红光','奔驰'],
'like':['sport','swming']
},
'李梦':
{'age': 24,
'sex': 'boy',
'hose': ['智学院', '龙兴园南区', '龙兴园北区'],
'like': ['sport', 'swming']
}
}
# print(people)
#取出龙兴园北区的值
print(people['李梦']['hose'][2])
#在like中增加run 针对列表增加
people['李梦']['like'].append('sun')
print(people)
#修改李梦的年龄=27
people['李梦']['age']+=3
people['李梦']['age']=people['李梦']['age']+3
print(people)
#字典循环取值
people={'于萍':
{'age':19,
'sex':'girl',
'car':['一汽大重','五菱红光','奔驰'],
'like':['sport','swming']
},
'李梦':
{'age': 24,
'sex': 'boy',
'hose': ['智学院', '龙兴园南区', '龙兴园北区'],
'like': ['sport', 'swming']
}
}
#默认对最外层的字典做循环,同keys()的结果是一样的
for i in people:
print(i)
#只循环展现字典中所有的值
for k in people.values():
print(k)
#只循环展现字典中所有的key
for k in people.keys():
print(k)
#循环展现字典中所有的key和value
for k,v in people.items():
print(k,v)