Python基础数据类型-字典(dict)

                                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟,请知晓。

 一.字典的基本使用

 #!/usr/bin/env python
 #_*_coding:utf-8_*_
 #@author :yinzhengjie
 #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/
 #EMAIL:y1053419035@qq.com

 UserInformation = {
     "name":"yinzhengjie",
     "heigh":"175cm",
     "habby":"Skating"
 }

 print(UserInformation.values())        #打印该字典的所有的value的值
 print(UserInformation.keys())          #打印该字典的所有的keys值
 print(UserInformation)                 #打印整个字典的信息
 print("address" in UserInformation)  #查找key名称是name所对应的value,如果有就返回其所对应的value,如果没有的话就不输出
 UserInformation["name"] = "尹正杰"   #修改一个字典中的一个key所对应的value值
 print(UserInformation)
 UserInformation["         #如果该字典没有对应的key,就是新增了一个key信息
 del UserInformation["name"]           #删除该字典中的name这个key
 UserInformation.pop("heigh")           #删除该字典中的heigh
 UserInformation.popitem()               #随机删除该字典的一个Key信息
 print(UserInformation)

 #以上代码执行结果如下:
 dict_values(['yinzhengjie', '175cm', 'Skating'])
 dict_keys(['name', 'heigh', 'habby'])
 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating'}
 False
 {'name': '尹正杰', 'heigh': '175cm', 'habby': 'Skating'}
 {'habby': 'Skating'}

二.字典的进阶玩法

 #!/usr/bin/env python
 #_*_coding:utf-8_*_
 #@author :yinzhengjie
 #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/
 #EMAIL:y1053419035@qq.com

 UserInformation = {
     "name":"yinzhengjie",
     "heigh":"175cm",
     "habby":"Skating"
 }

 AnotherUserInformation = {
     "name":"jujingyi",
     "RepresentativeWork":"热血长安",
     "Occupation":"Singer",
     "habby":"Go to karaoke"
 }
 list_1 = [1,2,2,3,3,4,4]
 list_2 = [444,{"name":"yinzhengjie"},555]
 print(UserInformation.setdefault("habby","GloryOfKings"))        #该方法可以去取该字典是否存name这个值,如果存在就会返回后面定义的值,如果不存在就回新建一个key值对
 print(UserInformation)
 print(UserInformation.setdefault("MobileGames","GloryOfKings")) #该方法可以去字典去取相应的Key(MobileGames)值,如果没有取到(就说明没有定义这个key),也就是新建一个新的key值
 print(UserInformation)
 UserInformation.update(AnotherUserInformation)                       #该方法可以将另外一个字典中的key和value更新到这个字典中,如果出现相同的key的话会用后面的字典中的value更新现有的value哟,所以要谨慎使用!
 print(UserInformation)
 dictionaries = dict.fromkeys(list_1,list_2)                                     #这里面有2个列表,会自动将前面的列表去重并将去重后的每一个元素生成一个字典中所对应的key.然后将后面的列表当成一个内存地址同时赋值给每一个key.
 print(dictionaries)
 dictionaries[3][1]["name"] ="尹正杰"                                          #如果通过fromkeys定义生成的字典,修改其中任意一个key的值,那么所有的key的value都会跟着变化哟
 print(dictionaries)

 #以上代码执行结果如下:
 Skating
 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating'}
 GloryOfKings
 {'name': 'yinzhengjie', 'heigh': '175cm', 'habby': 'Skating', 'MobileGames': 'GloryOfKings'}
 {'name': 'jujingyi', 'heigh': '175cm', 'habby': 'Go to karaoke', 'MobileGames': 'GloryOfKings', 'RepresentativeWork': '热血长安', 'Occupation': 'Singer'}
 {1: [444, {'name': 'yinzhengjie'}, 555], 2: [444, {'name': 'yinzhengjie'}, 555], 3: [444, {'name': 'yinzhengjie'}, 555], 4: [444, {'name': 'yinzhengjie'}, 555]}
 {1: [444, {'name': '尹正杰'}, 555], 2: [444, {'name': '尹正杰'}, 555], 3: [444, {'name': '尹正杰'}, 555], 4: [444, {'name': '尹正杰'}, 555]}

三.字典的遍历

 #!/usr/bin/env python
 #_*_coding:utf-8_*_
 #@author :yinzhengjie
 #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/
 #EMAIL:y1053419035@qq.com

 UserInformation = {
     "name":"yinzhengjie",
     "heigh":"175cm",
     "habby":"Skating"
 }

 for i in UserInformation:  # 打印字典中的没有个key和value,这种方法是最高效的
     print(i, UserInformation[i])

 print("我是分割线".center(50,"="))

 for k, v in UserInformation.items():  # 这个循环会将字典先转换成一个列表,然后再打印出来,如果数据量较小的话和上面的循环的方法差不多,但是数据量比较大的话就麻烦了.
     print(k, v)

 #以上代码执行结果如下:
 name yinzhengjie
 heigh 175cm
 habby Skating
 ======================我是分割线=======================
 name yinzhengjie
 heigh 175cm
 habby Skating

随机推荐

  1. linux命令:tar

    1.命令介绍: tar用来打包,压缩和解压文件. 2.命令格式: tar [选项] 文件 3.命令参数: 必要参数有如下: -A 新增压缩文件到已存在的压缩 -B 设置区块大小 -c 建立新的压缩文件 ...

  2. SG函数闲扯(转)

    http://ydcydcy1.blog.163.com/blog/static/216089040201342412717440/ 没来得及看.

  3. 12个Icon图标资源网站

    1.除了Icon以外,还有很多不错的UI设计素材. 地址:http://worldui.com/2.除了免费Icon资源下载以外,还提供Icon定制的付费服务.地址:http://dryicons.c ...

  4. 【转】如何测试CTS4.0 -- 不错

    原文网址:http://blog.csdn.net/subsist/article/details/7209341/ CTS4.0测试步骤 V1.2 (更新到CTS4.0 R3)     第一:平台准 ...

  5. 蓝桥杯—盾神与条状项链(C++实现)

    思路: 直接使用STL的list容器. 分两种情况: 1.DEL Q.直接调用void remove( const TYPE &val )函数即可. 2.ADD P Q.首先找出P所在的位置, ...

  6. makefile的编写规则

    2.       编写makefile 示例: test:main.o func.o gcc -o test main.o func.o func.o:func.c gcc -c func.c mai ...

  7. TFboy养成记 tf.cast,tf.argmax,tf.reduce_sum

    referrence: 莫烦视频 先介绍几个函数 1.tf.cast() 英文解释: 也就是说cast的直译,类似于映射,映射到一个你制定的类型. 2.tf.argmax 原型: 含义:返回最大值所在 ...

  8. Yii高级模板的安装

    1,如果你使用composer来安装的话,执行下边两条命令. composer global require "fxp/composer-asset-plugin:^1.2.0" ...

  9. SpringMvc和Mybatis整合总结

    1.先配置mybatis,测试读取数据库 2.自己测试数据 3.配置spring和springmvc, PS:配置web.xml,这样就不用getBean了 4.配置Controller 5.前后台交 ...

  10. IDEA安装以及项目初始化

    首先安装idea: 如果15.0版本安装不上就安装16.0: 点击安装文件以后,一直点下一步就可以了. 安装完成后设置: 如果没有的话,需要点击SDKs,点击+,然后选择电脑上安装的JDK. 接下来创 ...