1、定义字典,字典是key-value格式的,是无序的
stu_info={ 'username':'wldong', 'password':'123456', 'money':20, 'addr':'北京' }
2、创建空字典
d1={} #创建空字典 d2=dict() #创建空字典
3、增加元素
d1['name']='xbxu' d1['age']=18 d1.setdefault('class','双子座') print('之前的',d1) d1.setdefault('age',38) #如果使用setdefault,key已经存在了,就不会修改原来key的值 d1['name']='xbxu1' #如果key已经存在了,会修改原来的值,如果key不存在则会新增 print('之后的',d1)
4、修改元素
d1['name']='xbxu2'
5、取值
print(d1['name']) print(d1.get('name')) #取一个不存在的kry # print(d1['banban']) #当取值的key不存在时,会报错,提示KeyError print(d1.get('banban')) #当取值的key不存在时,会返回None(表示什么都没有),不会报错;可以使用此方法 print(d1.get('money',0)) #可以增加默认值,当获取不到key值时则返回0,若能获取到值则返回对应的值 print(d1.keys()) #取到字典里面所有的key,返回内容:dict_keys(['name', 'age', 'class']) print(d1.values()) #取到字典里面所有的value,返回内容:dict_values(['xbxu2', 18, '双子座'])
6、删除元素
d1.pop('name') del d1['name'] #d1.popitem() #随机删除一个元素k-v,不常用 print(d1)
7、清空
d1.clear() #清空
8、将第二个字典加到第一个字典里面去
d2={'abc':1234} d1.update(d2) #将第二个字典加到第一个字典里面去 print(d1)
9、字典循环
users={ 'wldong':'123456sw', 'wldong1':'12we3456', 'wldong2':'1234r456', 'wldong3':'1234f456', 'wldong4':'1234r356', 'wldong5':'12345226', 'wldong6':'12345336' }
需求:将以上密码修改成“用户名_密码”
分析
1)循环这个字典
2)把value修改成value=key_value
方法一:
for k in users: #直接循环一个字典的话,循环的是key value=users[k] #通过key取到value users[k]='%s_%s'%(k,value) print(users)
方法二:
#直接循环取到key和value for k,v in users.items(): print('%s_%s'%(k,v))