python 字典操作

1,字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)#打印所有的字典要素
 7 print(info["student01"])  #如果确定key存在可以用这个方法,否则系统会报错
 8 print(info.get("student04"))#不管key是否存在,都会有返回,不会出错
 9 print('student03' in info)#查找某个key是否在字典中
10 
11 输出:
12 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
13 武藤兰
14 None
15 True
字典的申明和查询

注意:a,字典要素是无序的,它没有下标。

      b,键值必须唯一。

2,字典要素的修改和增加

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)
 7 print(info['student01'])
 8 info['student01']="wu tenglan"   #修改字典的key的值
 9 info['student04']="苍井空"        #增加字典的key以及key值
10 print(info)
11 
12 输出:
13 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
14 武藤兰
15 {'student01': 'wu tenglan', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚', 'student04': '苍井空'}
字典值的新增和修改

3,字典要素的删除

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)
 7 del (info["student01"]) #python通用方法删除
 8 print(info)             
 9 info.pop("student02") #字典的专用删除方法
10 print(info)
11 
12 输出:
13 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
14 {'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
15 {'student03': '小泽玛利亚'}
字典要素的删除

4,多级字典的嵌套及操作

 1 AV_catalog={
 2     "欧美":{
 3         "www.youporn.com":["很多免费的","世界最大的","质量一般的"],
 4         "www.pornhub.com":["很多免费的","也很大的","质量比youporn高点"],
 5         "letmedothistoyou.com":["很多自拍的","高质量图片很多","资源不多,更新慢"],
 6         "x-art.com":["质量很高的,真的很高","全部收费,屌丝请绕过"]
 7     },
 8     "日韩":{
 9         "tokoy-hot":["质量不清楚","听说收费","个人不喜欢日韩了"]
10     },
11     "大陆":{
12         "1024":["全部免费","好人一生平安","服务器在国外,慢"]
13     }
14 }
15 AV_catalog["大陆"]["1024"][1]="可以在国内做镜像"
16 print(AV_catalog["大陆"]["1024"][1])
17 
18 输出:
19 可以在国内做镜像
多级嵌套字典

5,打印字典的key和value

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print (info.values())
 7 print (info.keys())
 8 
 9 输出:
10 dict_values(['武藤兰', '泷泽萝拉', '小泽玛利亚'])
11 dict_keys(['student01', 'student02', 'student03'])
打印字典的key,value

6,setdefault方法:类似get,如果字典中有这个key值则返回value,如果没有key值就创建

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 info.setdefault("student03",{"苍井空"})
 7 print(info)
 8 info.setdefault("student04",{"苍井空"})
 9 print(info)
10 
11 输出:
12 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
13 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚', 'student04': {'苍井空'}}
setdefault方法

注意:该方法可以防止误覆盖原字典的value

 7,合并2个字典:update,该方法可以合并2个字典,合并后,对于键值相同的key的value会用新的value替换

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 b={
 7     'student01':'冲田杏梨',
 8     'student04':'覃蜜',
 9     'student05':'erica ellyson'
10 }
11 print(info)
12 info.update(b)
13 print(info)
14 
15 输出:
16 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
17 {'student01': '冲田杏梨', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚', 'student04': '覃蜜', 'student05': 'erica ellyson'}
update方法

8,把字典转为列表

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)
 7 print(info.items())
 8 
 9 输出:
10 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
11 dict_items([('student01', '武藤兰'), ('student02', '泷泽萝拉'), ('student03', '小泽玛利亚')])
items方法

注意:该列表中每个要素是一个元组,每个元组有2个要素,第一个是key,第二个是value

9,字典的循环

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)
 7 for i in info:
 8     print(i)#只写i的话,将只打印key
 9 
10 输出:
11     {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
12 student01
13 student02
14 student03
15 for i in info:
16     print(i,info[i])#这样写才能把key和value都带出来
17 输出:
18 student01 武藤兰
19 student02 泷泽萝拉
20 student03 小泽玛利亚
基本的for循环

10,第二种姿势的for循环

 1 info={
 2     'student01':'武藤兰',
 3     'student02':'泷泽萝拉',
 4     'student03':'小泽玛利亚',
 5 }
 6 print(info)
 7 for i,o in info.items():#第二种姿势,把字典转换成列表再循环,结果相同,但是效率很低
 8     print(i,o)
 9 
10 输出:
11 {'student01': '武藤兰', 'student02': '泷泽萝拉', 'student03': '小泽玛利亚'}
12 student01 武藤兰
13 student02 泷泽萝拉
14 student03 小泽玛利亚
for+item的循环

 

posted on 2017-11-16 13:54  敏少爷  阅读(221)  评论(0编辑  收藏  举报

导航