Python基础数据类型-字典(dict)
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟,请知晓。
一.字典的基本使用
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 8 UserInformation = { 9 "name":"yinzhengjie", 10 "heigh":"175cm", 11 "habby":"Skating" 12 } 13 14 print(UserInformation.values()) #打印该字典的所有的value的值 15 print(UserInformation.keys()) #打印该字典的所有的keys值 16 print(UserInformation) #打印整个字典的信息 17 print("address" in UserInformation) #查找key名称是name所对应的value,如果有就返回其所对应的value,如果没有的话就不输出 18 UserInformation["name"] = "尹正杰" #修改一个字典中的一个key所对应的value值 19 print(UserInformation) 20 UserInformation["age"] = "18" #如果该字典没有对应的key,就是新增了一个key信息 21 del UserInformation["name"] #删除该字典中的name这个key 22 UserInformation.pop("heigh") #删除该字典中的heigh 23 UserInformation.popitem() #随机删除该字典的一个Key信息 24 print(UserInformation) 25 26 27 28 29 #以上代码执行结果如下: 30 dict_values(['yinzhengjie', '175cm', 'Skating']) 31 dict_keys(['name', 'heigh', 'habby']) 32 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating'} 33 False 34 {'name': '尹正杰', 'heigh': '175cm', 'habby': 'Skating'} 35 {'habby': 'Skating'}
二.字典的进阶玩法
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 8 UserInformation = { 9 "name":"yinzhengjie", 10 "heigh":"175cm", 11 "habby":"Skating" 12 } 13 14 AnotherUserInformation = { 15 "name":"jujingyi", 16 "RepresentativeWork":"热血长安", 17 "Occupation":"Singer", 18 "habby":"Go to karaoke" 19 } 20 list_1 = [1,2,2,3,3,4,4] 21 list_2 = [444,{"name":"yinzhengjie"},555] 22 print(UserInformation.setdefault("habby","GloryOfKings")) #该方法可以去取该字典是否存name这个值,如果存在就会返回后面定义的值,如果不存在就回新建一个key值对 23 print(UserInformation) 24 print(UserInformation.setdefault("MobileGames","GloryOfKings")) #该方法可以去字典去取相应的Key(MobileGames)值,如果没有取到(就说明没有定义这个key),也就是新建一个新的key值 25 print(UserInformation) 26 UserInformation.update(AnotherUserInformation) #该方法可以将另外一个字典中的key和value更新到这个字典中,如果出现相同的key的话会用后面的字典中的value更新现有的value哟,所以要谨慎使用! 27 print(UserInformation) 28 dictionaries = dict.fromkeys(list_1,list_2) #这里面有2个列表,会自动将前面的列表去重并将去重后的每一个元素生成一个字典中所对应的key.然后将后面的列表当成一个内存地址同时赋值给每一个key. 29 print(dictionaries) 30 dictionaries[3][1]["name"] ="尹正杰" #如果通过fromkeys定义生成的字典,修改其中任意一个key的值,那么所有的key的value都会跟着变化哟 31 print(dictionaries) 32 33 34 35 36 #以上代码执行结果如下: 37 Skating 38 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating'} 39 GloryOfKings 40 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating', 'MobileGames': 'GloryOfKings'} 41 {'name': 'jujingyi', 'heigh': '175cm', 'habby': 'Go to karaoke', 'MobileGames': 'GloryOfKings', 'RepresentativeWork': '热血长安', 'Occupation': 'Singer'} 42 {1: [444, {'name': 'yinzhengjie'}, 555], 2: [444, {'name': 'yinzhengjie'}, 555], 3: [444, {'name': 'yinzhengjie'}, 555], 4: [444, {'name': 'yinzhengjie'}, 555]} 43 {1: [444, {'name': '尹正杰'}, 555], 2: [444, {'name': '尹正杰'}, 555], 3: [444, {'name': '尹正杰'}, 555], 4: [444, {'name': '尹正杰'}, 555]}
三.字典的遍历
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 8 UserInformation = { 9 "name":"yinzhengjie", 10 "heigh":"175cm", 11 "habby":"Skating" 12 } 13 14 for i in UserInformation: # 打印字典中的没有个key和value,这种方法是最高效的 15 print(i, UserInformation[i]) 16 17 print("我是分割线".center(50,"=")) 18 19 for k, v in UserInformation.items(): # 这个循环会将字典先转换成一个列表,然后再打印出来,如果数据量较小的话和上面的循环的方法差不多,但是数据量比较大的话就麻烦了. 20 print(k, v) 21 22 23 24 25 #以上代码执行结果如下: 26 name yinzhengjie 27 heigh 175cm 28 habby Skating 29 ======================我是分割线======================= 30 name yinzhengjie 31 heigh 175cm 32 habby Skating