Python 字典操作
字典的创建
dict = {key:value, ...}
说明:
key(键)的数据类型必须为不可改变的数据类型,如字符串,数字常量
增
dict = {'name':'alex','age':18}
向里面增加sex这个键值,有两种方法
dict['sex'] = 'male' #第一种方法
dict.setdefault('sex','male') #第二种方法
对setdefault方法的说明:
- setdefault方法设置的键如果在字典中没有,则会将此方法设置的键值对加入其中,如果已经存在与字典中,则不会做任何的修改。
- setdefault方法有返回值,如果字典中有该键,则返回字典中该键对应的值,如果没有,则返回该方法设置的键对应的值。
dict = {'name':'alex'}
'''
由于字典中已经存在'name',所以不会做任何的修改,并返回'name'做对应的值'alex',所以ret = 'alex'
'''
ret = dict.setdefault('name','bobo')
'''
由于dict中不存在'age'键,所以该键值会被添加到dict中,并返回'age'键所对应的值18,所以ret2 = 18
'''
ret2 = dict.setdefault('age',18) #ret2 = 18
查
直接通过键去查
dict['name']
改
1.直接用相应的键对其值赋值
dict['name'] = 'bobo'
2.使用updata()方法
dict = {'name':'alex'}
dict2 = {'name':'bobo','age':18}
dict.update(dict2)
print(dict)
#output:{'name': 'bobo', 'age': 18}
对update()方法的说明
- update()方法会对字典进行更新,如果字典中有更新内容的键,则将改键所对应的值进行更新,如果不存在,则在字典中加入该键值对
- 正如上面所示,‘name’键在字典中存在,则它所对应的值被更新为了’bobo’,而’age’键不存在,则在字典中加入了该键值对
删
del dict['name'] #将'name'的键值对删除
dict.clear() #清空字典,字典还在
dict.pop('age') #删除'age'所对应的键值对,并返回该键所对应的值
dict.popitem() #随机删除,并返回值
del dict #删除整个字典,字典不存在
其他操作
dict1 = dict.fromkeys(['host1','host2','host3'],'test')
print(dict1)
#output:
#{'host1': 'test', 'host2': 'test', 'host3': 'test'}
字典嵌套
av_catalog = {
"欧美":{
"www.yourporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
'''
对欧美下的www.yourporn.com的质量一般进行修改
'''
av_catalog['欧美']['www.yourporn.com'][1] = '高清无码'
字典的遍历
'''
打印出字典的键值对
'''
for i in dict
print(i,dict[i])
for i,v in dict,items():
print(i,v)
#建议使用第一种,效率高