字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对“键”“值”之间用冒号隔开,所有“键值对”放在一对大括号“{}”中,元素之间用逗号分隔。在同一个字典中,“键”必须是唯一的,因此,“键”必须为不可变类型“值”可以重复,值可以是任意类型。

字典的创建

创建字典的两种方式。

字典的创建

注意:将可迭代对象转化为字典时,要求可迭代对象中每个元素的长度为2。

字典的主要方法

字典是无序的,因此不支持索引、切片等操作。主要通过字典对象[键]获取对应的值。如果访问一个不存在的“键”,此时将会抛出KeyError异常如果对一个不存在的“键”赋值,此时将会在字典中添加一个“键值对”。此外,字典还提供了获取所有键值对所有键所有值等方法。字典元素访问的主要方法如下。

字典元素的访问

字典中的键值对是可以变化的,支持添加删除更新等操作,常见方法如下。

字典对象的常用方法

字典推导式

Python中也支持字典推导式,写法和集合推导式的写法类似,也是放在一对大括号中。表达式中通常包含键和值两部分,并分别指定这两部分的内容。字典推导式的写法和例子如下。

字典推导式

  1. a_dict的值为:{'a': 2, 'E': 5, 'B': 6, 'C': 7, 'd': 10}
  2. b_dict的值为:{'a': 2, 'e': 5, 'b': 6, 'c': 7, 'd': 10}
  3. c_dict的值为:{'a': 2, 'B': 6, 'd': 10}
  4. d_dict的值为:{'D': 4, 'E': 4, 'F': 4}

字典的排序

实际开发中,经常会对字典进行排序,可使用系统中提供的sorted()函数,但需要指定是按照“键”进行排序还是按照“值”进行排序。通常通过lambda表达式来指定排序的规则,lambda表达式的详细介绍将会在后篇的文章Python中的函数部分介绍。

字典排序

小小练习题

练习题

支持字典_手把手教你学Python之字典相关推荐

  1. python中字典的value可以为任意对象_手把手教你学Python之字典

    字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...

  2. python私人定制_手把手教你学python第十五讲(魔法方法续私人“定制”)

    python无处不对象的深刻理解 前面写了这么多,我觉得有必要从一个大的层面,也就是OO来看问题的本质.只要你调用对象的语法是合乎python的习惯的,那就是可以的,我们以前从来没有像下面这么写过,对 ...

  3. python 函数修饰器 父类_手把手教你学python第十四讲(函数装饰器,super用法和时间处理)...

    文中有些字在图中是因为每篇文章最多100张图片,我把有的小图片和文字一起截图了,文中所有的引用都会标出原文网址,除此以外都是作者原创. 有时候会在文章最前或者最后补充一些知识或者把前面说的有问题的地方 ...

  4. 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)

    目录 基本结构之Series Series对象的创建 Index对象介绍 Series中数据的访问 Series中常用方法 基本结构之DataFrame DataFrame的创建 ​DataFrame ...

  5. 手把手教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib)

    目录 Matplotlib介绍 线形图(折线图) 直方图 条形图 饼状图 散点图 Matplotlib介绍        matplotlib是一个Python 的2D绘图库,提供了一套表示和操作图以 ...

  6. oracle数据库更新语句_20_手把手教你学Python之操作数据库

    数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...

  7. 手把手教你学Python之常见运算符

    目录 算术运算符 关系运算符 逻辑运算符 位运算符 成员运算符 身份运算符 前面给大家介绍了Python中的一些基本数据类型,这些数据之间如何进行运算呢?这就需要借助于一些运算符了,Python中提供 ...

  8. python global用法_14_手把手教你学Python之函数(下)

    变量作用域:根据变量定义的位置,可将变量分为全局变量和局部变量. 全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作.如果有赋值语句,相当于创建了一个同名的局部变量: 局部变 ...

  9. 手把手教你学Python之波士顿房价预测(scikit-learn的应用)

    目录 1.波士顿房价预测介绍 2.线性回归算法 3.调用scikit-learn库实现房价预测 1.波士顿房价预测介绍 问题描述:波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数,统 ...

最新文章

  1. 强化学习之gym初战实战案例:悬崖案例CliffWalking-v0。
  2. 从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?
  3. [SQL] 查找数据库中含有某字段的所有表
  4. redis 槽点重新分配 集群_redis集群高可用部署-cluster-槽点的迁移查看
  5. 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介
  6. 1. K近邻算法(KNN)
  7. 桌面有u盘符计算机里没有了,教你电脑不显示u盘盘符怎么办
  8. CPU Usage (C#) 测试
  9. oracle归档日志满正常么,oracle归档日志满了的处理方法
  10. 安装此计算机程序代码18,我安装VS15,运行程序代码的时候显示的是计算机丢失msv...
  11. PS-第十一天-通道抠图及剪贴蒙版
  12. 用Python在word的指定位置插入图片(使用Python-docx包)
  13. pandas.read_csv读取数据时出现省略号
  14. 如何有效地进行资料整理?
  15. python ansible
  16. seurat质控Warning: Feature names cannot have underscores (‘_‘), replacing with dashes (‘-‘)
  17. 自然语言处理nlp全领域综述
  18. python自动化交易_用Python寫自動交易程式的入門平台: Quantopian
  19. zabbix6.0安装成功路上的小插曲
  20. 技术的魅力在于融汇惯通

热门文章

  1. 电子科学与技术相关索引汇总
  2. 在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法
  3. main的方法是Java_Java中的main()方法
  4. mysql的rows大小超过8126_mysql大字段(Row size too large8126)
  5. 计算机等级考试2010,2010年全国计算机等级考试相关政策
  6. 字体文件解析 c语言,如何正确地从C语言的文件中读取某些字符串?
  7. inputstream的大小为0_刘科排列三第2020306期推荐:独胆参考0,双胆0和7
  8. EUREKA原理总结
  9. cas-client登录后报INVALID_PROXY_CALLBACK
  10. luogu P1046 陶陶摘苹果