字典定义

字典是一种 key-value 的数据类型,这点很重要,是区别使用列表和字典的依据。

语法格式:

  1. info = {
  2. 'stu1101': "Aaron",
  3. 'stu1102': "Jim",
  4. 'stu1103': "Jack",
  5. }

字典的特性

  • dict是无序的
  • key必须是唯一的,所以字典具有天生去重
  • 与键值向关联的值可以是数字,字符串和列表

字典操作

字典查找

  1. >>> "stu1102" in info #标准查找用法
  2. True
  3. >>> info.get("stu1102") #获取
  4. 'Jim'
  5. >>> info["stu1102"] #同上,但是看下面
  6. 'Jim'
  7. >>> info["stu1105"] #如果一个key不存在,就报错,get不会,不存在只返回None
  8. Traceback (most recent call last):
  9. File "<stdin>", line 1, in <module>
  10. KeyError: 'stu1105'

字典值添加

  1. >>> info["stu1104"] = "West"
  2. >>> print(info)
  3. {'stu1102': 'Jim', 'stu1104': 'West', 'stu1103': 'Jack', 'stu1101': 'Aaron'}

字典值修改

  1. >>> info["stu1103"] = "West"
  2. >>> print(info)
  3. {'stu1102': 'Jim', 'stu1103': 'West', 'stu1104': 'JacWest'}

字典值删除

  1. >>> info
  2. {'stu1102': 'Jim', 'stu1103': 'Jack', 'stu1101': 'Aaron'}
  3. >>> info.pop("stu1101") #标准删除姿势
  4. 'Aaron'
  5. >>> info
  6. {'stu1102': Jim', 'stu1103': 'Jack'}
  7. >>> del info['stu1103'] #永久删除
  8. >>> info
  9. {'stu1102': 'Jim'}
  10.  
  11. >>> info = {'stu1102': 'Jim', 'stu1103': 'Jack'}
  12. >>> info
  13. {'stu1102': 'Jim', 'stu1103': 'Jack'} #随机删除
  14. >>> info.popitem()
  15. ('stu1102', 'LongZe Luola')
  16. >>> info
  17. {'stu1103': 'XiaoZe Maliya'}

字典遍历

遍历分为三种,遍历键值对,遍历键和遍历键值。需要注意的是,在遍历字典时默认是遍历所有的键。在下面的历程中“for key in info.keys():”,可以改为“for key in info:”,但显示的调用方法keys(),代码的可读性更强。

  1. info = {
  2. 'stu1101': "Aaron",
  3. 'stu1102': "Jim",
  4. 'stu1103': "Jack",
  5. }
  6.  
  7. #遍历键值对
  8. for key,value in info.items():
  9. print("\nkey:"+key)
  10. print("value:"+value)
  11.  
  12. #输出:
  13. keystu1101
  14. valueAaron
  15.  
  16. keystu1102
  17. valueJim
  18.  
  19. keystu1103
  20. valueJack
  21.  
  22. #遍历键
  23. for key in info.keys():
  24. print("key:"+key)
  25.  
  26. #输出:
  27. keystu1101
  28. keystu1102
  29. keystu1103
  30.  
  31. #遍历键值
  32. for value in info.values():
  33. print("value:"+values)
  34.  
  35. #输出:
  36. valueAaron
  37. valueJim
  38. valueJack

由字典的特性知,字典是无序的。但有以特定顺序获取键和键值的需求,这可以利用sort方法来实现。

  1. info = {
  2. 'stu1101': "Aaron",
  3. 'stu1102': "Jim",
  4. 'stu1103': "Jack",
  5. }
  6.  
  7. for key in sorted(info.keys())
  8. print("key:"+key)
  9.  
  10. #输出:
  11. key:stu1101
  12. key:stu1102
  13. key:stu1103

字典嵌套

字典的键值可以嵌套数字,列表和字典。同样的,还有列表的嵌套,我说的是在列表中嵌套字典。具体使用哪种嵌套的数据类型,关键是要把握好列表和字典各自的特性。对于列表来说,列表中的元素描述的应该对应的是同一种属性,比如,要对披萨字典的描述,其中,披萨的配料就不止是一个值能表示,因此,这个字典的键值就是一个列表,即字典嵌套列表;对于字典来说,把握好键值对的理解就好,它们是一一对应的。字典嵌套的使用,难点不是在如何操作,而是能不能设计一个合理的建模模型。

字典嵌套的访问问题

不管是谁嵌套谁,列表和字典的访问都是通过“[]”来实现的,唯一不同是“[]”中的是索引,还是键的问题。

  1. #字典嵌套列表
  2. pissa = {
  3. 'crust':'thick',
  4. 'toppings':['mushrooms','extra','cheese'],
  5. }
  6. print(pissa['toppings'][2])
  7. #输出:
  8. cheese
  9.  
  10. #列表嵌套字典
  11. people_info = [
  12. {'name':'Aaron','age':'24'},
  13. {'name':'Jim','age':'25'},
  14. ]
  15. print(people_info[1]['name'])
  16. #输出:
  17. Jim

python数据类型之字典的更多相关文章

  1. python数据类型:字典Dictionary

    python数据类型:字典Dictionary 字典是一种可变容器模型,可以存储任意类型对象 键是唯一的,但是值不需要唯一 值可以取任何数据类型,但是键必须是不可变的,如字符串,数字,元组 创建字典: ...

  2. Python数据类型-6 字典

    字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...

  3. Python数据类型(字典和集合)

    1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个 ...

  4. python 数据类型三 (字典)

    一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...

  5. Python数据类型-04.字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据 ------------ 完美的分割线 ------------- 1.字典引入 # 为何还要用字典?存放一个人的信 ...

  6. Python数据类型(字典)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 字典(Dictionary) 字典 ...

  7. python数据类型之字典操作

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由key和value成对组成.基本语法如下: infos = {"name&q ...

  8. Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字典类型(dict)

    字典!在Python中字典是另一种可变容器模型,可以存储任意类型的对象.是Python存储数据类型的最高级(maybe). 特点:1. 字典的存储方式和其他类型数据略有不同,是通过键(key)和值(v ...

  9. Python学习(六) Python数据类型:字典(重要)

    字典dict: 字典其实就相当于java里面的Map,用来存储键值对的.其中存储的数据时无序的. 假如有这样的数据: t1=['name','age','sex'] t2=['tom',30,'mal ...

  10. python 数据类型 之 字典

    python 3.6.5字典的特性和定义定义:{'key_1':vlaue_1,'key_2':value_2}1.键与值用冒号 : 分开2.项与项 用 , 分开 特性1.可以存放多个值,可以不唯一, ...

随机推荐

  1. C - 前m大的数 (结构体)

    点击打开链接 还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的 ...

  2. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

  3. jvm高级特性(4)(内存分配回收策略)

    JVM高级特性与实践(四):内存分配 与 回收策略 一. 内存分配 和 回收策略 1,对象内存分配的概念: 往大方向讲,它就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配), ...

  4. php获取客户端ip地址方法

    /** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @param boolean $adv 是否进行高级模式获取(有 ...

  5. 【xsy1097】 拼图 构造题

    题目大意:请你使用n个图形拼成一个矩形.要求:①这每个图形都由1×1的小正方形组成,而且第i个图形由i个小正方形组成.②除了第1个和第2个图形以外,任意一个图形的所有小正方形,不都在一条直线上. 数据 ...

  6. 剑指offer三十三之丑数

    一.题目 如果一个数的因子中,出去1和本身以外,质数因子只包含2.3和5,则把改数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质数因子7. 习惯上我们把1当做是第一个 ...

  7. Spring Security构建Rest服务-0700-SpringSecurity开发基于表单的认证

    自定义用户认证逻辑: 1,处理用户信息获取,2,用户校验,3密码的加密解密 新建:MyUserDetailService类,实现UserDetailsService接口. UserDetailsSer ...

  8. pycharm 使用jupyter notebook 报错:'_xsrf' argument missing from POST

    出问题的关键点就在: 我用cmd启动的jupyter notebook,然后用pycham新建了一个jupyter notebook 结果 一直报错'_xsrf' argument missing f ...

  9. ruby:TypeError: 对象不支持此属性或方法(<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolink)

    我整理了一下 目前有三种方法,我是windows 7 64位, 答案中很多人是win8也成功了. 方法1:找到当前项目下 app/javascripts/applications.js  把里面的// ...

  10. UBUNTU 下 APACHE2 Too many open files: Error retrieving pid file /var/run/apache2.pid

    cat /proc/sys/fs/file-max 系统可打开的最大文件个数 ulimit -n 当前系统限制的个数 ulimit -n 10240 调整当前系统的限制 修改/etc/sysctl.c ...