字典简介| 学习笔记

简介: 快速学习字典简介

开发者学堂课程【Python Web 开发基础字典简】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/600/detail/8718


字典简介


内容简介:

(一)字典是什么

(二)字典和序列(列表)

(三)字典的术语

(四)创建字典

(五)如何获取字典的值


(一)字典是什么

字典的英文名字简写叫 dict,字典并不是一种序列,它属于一种新的数据结构,称为映射(mapping)。


(二)字典和序列(列表)

字典的作用和列表类似,都是用来存储对象的容器,列表存储数据的性能很好,但是查询数据的性能很差。

在列表中可以存储十个数据甚至一万个数据,比如说存储十万个员工的数据信息,这些数据信息都是按照一定的固定的顺序在我们的序列中、列表中保存的。

当我想要在这一万个员工里找一个名为“白骨精”的员工信息时,有两种方式,

第一,我们明确知道“白骨精”的所有信息,这样我们就可以快速的把他找到;

第二,如果我们不知道的话我们就要把这个序列里面所有元素都遍历出来,一个一个检查。

所以如果序列里操作的数据很多,需要快速查询的时候,它的性能是很差的。

如果说序列像一本书,那么它是没有目录的,可以翻到任意一页,但是却不知道每一页的内容。

列表和序列是通过索引来查询的,而字典就不一样了。在字典中,每一个元素都有一个唯一的名字,通过这个唯一的名字,可以快速的查找到指定的元素。

字典的存储性能没有列表好,但是在查询元素时,字典的效率是非常快的。


(三)字典的术语

在字典中可以保存多个对象,每个对象都会有一个唯一的名字,这个唯一的名字,我们称其为键(key),这个对象我们称其为值(value),所以字典我们也称为键值对(key-value)结构,通过 key 可以快速的查询 value,每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)。


(四)创建字典

接下来我们进行一个创建,在 code 里面创建一个11.字典

使用大括号{}来创建字典,创建一个d={}大括号,打印一下,print(d,type(d)),这个 d 就是创建了一个空字典。

接下来创建一个包含有数据的字典,也就是往里面添加项,需要注意的是,字典里面有键值对结构,所以此时不能写d={1,2,3},语法应该是{key:value,key:value,key:value},就是给之前一个一个的元素起了一个名字,变成加上 key。

那么用 d={'name':'孙悟空'},就创建好了一个字典,这个字典里有一个项,项的 key 是 name,值(value)是孙悟空,可以继续写'age':18,'gender':男,并保存,现在我们字典里有三项,“name,age,gender”是key,“孙悟空,18,男”是 value。

字典的值(value)可以是任意对象,键(key)可以是任意的不可变对象(int,str,bool,tuple,…)但是一般我们都会使用 str。字典的键是不能重复的,如果出现重复的,后面的会替换掉前面的,执行看一下,前面的那个就没有了。

这样的格式看着是不太清楚的,我们可以把每一项单独放在一行,大括号中括号这样是没问题的,执行起来效果是一样的。


(五)如何获取字典的值

字典创建完了,那接下来,需要根据键来获取值,操作方式和列表一样,只不过列表用索引,这里用键。如果你想要知道名字的纸,就在这里输入 print(d['name']),保存就会出现“孙悟空”,同理输入'age'就会出现“18”,如果都想得到,就输入 print(d['name'],d['age'],d['gender']),执行之后,“孙悟空,18,男”就都出现了。

为什么说这个的查询性能好,因为索引的012345是没有意义的,但是键的名字是有意义的,索引就像一个页码,而“name”这种名字可以通过名字知道是什么意思,查询会比较快。

还有一种情况,如果使用了字典中不存在的键,比如 print(d['hello']),就会报错,出现 keyError:'hello'。

相关文章
|
4月前
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
2月前
|
人工智能 小程序 前端开发
小程序、网站 vs. APP:成本差异究竟在哪里?技术栈如何决定项目上限?优雅草卓伊凡
小程序、网站 vs. APP:成本差异究竟在哪里?技术栈如何决定项目上限?优雅草卓伊凡
170 0
小程序、网站 vs. APP:成本差异究竟在哪里?技术栈如何决定项目上限?优雅草卓伊凡
|
10月前
|
编译器 API 语音技术
SDK介绍
【10月更文挑战第21天】
|
9月前
|
安全 网络协议 Linux
telnet在windows和linux上的使用方法
Telnet是一个简单且强大的网络工具,广泛用于远程管理和网络诊断。尽管存在安全风险,但在受控环境中,Telnet仍然是一个非常有用的工具。通过本文的介绍,您应该能够在Windows和Linux系统上安装并使用Telnet进行各种网络操作。
1352 18
|
11月前
|
运维 物联网 数据中心
|
前端开发 JavaScript 容器
使用echarts遇到的问题及解决
使用echarts遇到的问题及解决
643 0
|
11月前
|
编译器 API 定位技术
API和SDK的区别
API(应用程序编程接口)和SDK(软件开发工具包)的主要区别在于范围、内容、抽象程度及使用方式。API定义了软件组件间的交互规则,范围较窄,更抽象;而SDK提供了一整套开发工具,包括API、编译器、调试器等,范围广泛,具体且实用,有助于提高开发效率。
|
JavaScript 前端开发 Linux
Node.js安装与配置
`Node.js` 是一个基于 `Chrome V8` 引擎的 `JavaScript` 运行环境,它允许开发者使用 `JavaScript` 编写服务器端代码。以下是 `Node.js` 的安装与配置的详细步骤:
470 0
Node.js安装与配置
|
11月前
|
安全 BI 数据安全/隐私保护
什么是AD域?域能给公司带来什么好处?哪款AD域管理工具比较好?
经营公司中很重要的一点就是对公司的管理,所以基本上所有中型公司为了更方便地管理公司电脑,打印机和用户都会请IT咨询公司来做AD域的设计。
1485 0
|
监控 网络安全 数据库
IT知识百科:什么是802.1x认证逃生?
【2月更文挑战第20天】
1332 0
IT知识百科:什么是802.1x认证逃生?