课时15:字典的介绍

简介: 字典是一种映射数据结构,与列表不同,它通过键值对存储对象,查询效率更高。字典的每个元素由唯一键(Key)和对应的值(Value)组成,称为键值对。键必须是不可变对象(如字符串、数字),且不能重复。字典适合快速查找特定信息,而列表则按索引访问元素,查询性能较低。以下是创建字典及获取值的示例代码:字典提供了一种高效、灵活的方式来组织和访问数据。

字典的简介

 

摘要

1、字典的定义

2、字典与列表的不同

3、字典的组成

4、举例代码

 

01.字典的定义

 

1.1字典的定义

字典不是序列,是一种新的结构。字典属于一种新的数据结构,称为映射( Mapping  )

字典的作用和列表类似,都是用来存储对象的容器

 

02.字典与列表的不同

 

2.1字典与列表的不同

序列是往列表里面存多个对像、多个数据。同样,在字典里也可以存多个数据。

不同之处在于列表存储数据的性能很好,但是查询数据的性能的很差。

例如:在列表里存储一万个员工信息,这些信息按照一定固定的顺序在列表中保存,这时需要从这个列表调出一个某位员工信息

有两种方式

l 明确知道该员工的编号或者索引,可以通过该员工编号或者索引快速找出该员工信息

l 如果不知道该员工的编号或者索引的话,就需要把列表里的元素得一个一个的列出来,再然后去一个一个的找出该员工信息编号。

所以序列在需要快速查找信息时性能较差。

序列就像一本没有目录只有页码的书,序列只能通过索引来操作元素。

在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素,这里的名字和索引意思大致相同。在查询元素时,字典的效率是非常快的

 

03.字典的组成

 

3.1字典的组成

在字典中可以保存多个对象,每个对象都会有一个唯一的名字。

这个唯一的名字,称其为键(Key),通过 Key 可以快速的查询Value

这个对象,称其为值(Value) 

所以字典,也称为叫做键值对(Key-value)结构每个字典中都可以有多个键值对,而每一个键值对称其为一项( Item)

 

04.举例代码

 

4.1创建代码

接下写一个代码,如下:

Code 里创建一个文件

# 字典
# 使用 { } 来创建字典
d={ }  #创建了一个空字典,里面一项都没有
print(d ,type(d))

接下来执行,如图:

image.png

 

4.2语法结构

接下来向字典里添加项,如下:

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}  等于给每一个元素加了一个Key 名字
d={‘name’:‘孙悟空’}

这里写的时候不像列表 d={1,2,3}这样,但是在字典里有键值对结构,所以语法如下所示

#语法:

#{key:value,key:value,key:value}  等于给每一个元素加了一个Key 名字

d={‘name’:‘孙悟空’}

这时keyname,而值value叫“孙悟空“。执行后如图:

image.png

接下来继续添加,如下:

d={‘name’:‘孙悟空’,‘age’:18,‘gender’:‘男’}

紧接着再执行,如下图:

image.png

#字典的值可以是任意对象

#字典的键可以是任意的不可变对象(int、str、bool、tuple…),像List 这样的可变对象就不可以。但是一般都会使用 Str ,很少用到别的类型,但不排除特殊情况。

 

4.3 字典的键不能重复

#字典的键是不能重复的,如果出现重复的后面的会替换前面的。

d={‘name’: ‘孙悟空’,‘age’:18,‘gender’:‘男’,‘name’:‘sunwukong ’}

执行后如图:

image.png

这里会发现 Name 重复了,后面的“sunwukong”会替换到前面的孙悟空

紧接着,这种写法格式不太清楚,可以将每一个项单独放到一行。如下:

d={
‘name’: ‘孙悟空’,
‘age’:18,
‘gender’:‘男’,
‘name’:’sunwukong ’
}

像这种中括号是可以跨行的。再次执行如下图:

image.png

和上述写法执行后效果是一样的。

 

4.4获取字典里的值

操作方式和列表一样,只不过列表里用索引,字典里面用的键。

#需要根据键来获取值
print(d['name'])

执行后如图:

image.png

print(d[' age '])

保存后执行如图:

image.png

想要全部信息的话,可以像如下方形式写,保存后执行如图:

print(d['name'],d[' age '], d[' gender '])

image.png

这样就完成了,字典里面用名字获取信息,列表里用索引。因为在字典里名字具有意义,如 NameAgeGender 是具备意义的,就像一个目录,查询起来比较快。但是索引是没有意义的,就像页码一样。列表中没有序号是没有意义的

接下来还有一种情况,字典里没有该信息时,执行后查询后会报错,如下:

print(d[' hello '])

image.png

#如果使用了字典中不存在的键,会报错。

print(d[' hello ']) Key Error: ‘hello’


相关文章
|
8月前
|
人工智能 智能设计 图计算
金鸡电影节创投大会AI短片《天线》:构建基于现实世界的想象空间
金鸡电影节创投大会AI短片《天线》:构建基于现实世界的想象空间
|
5月前
|
人工智能 自然语言处理 API
电商API技术文档编写规范白皮书:方法论与行业实践
本文系统阐述电商API接口文档的编写规范与最佳实践,涵盖结构设计、技术语言、开发者体验、版本控制及质量保障等方面,助力企业提升开发效率,构建开放共赢的电商生态。
|
3月前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
8月前
|
索引
课时13:可变对象
可变对象是指其值可以在创建后被修改的对象。每个对象包含三个属性:Id(标识)、Type(类型)和Value(值)。其中,只有Value是可变的。例如,列表是典型的可变对象,可以通过索引修改其元素。通过代码演示和图示,本文详细解释了如何区分修改对象与修改变量的区别及其影响。修改对象时,所有指向该对象的变量都会受到影响;而修改变量则仅影响该变量本身,不会影响其他变量。总结来说,赋值操作通常修改变量,而通过索引或方法修改内容的操作则修改对象。
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
264 3
|
数据采集 XML 数据挖掘
CDGA|数据治理新视角:清洗数据,让数据质量飞跃提升
在数据治理中,标准化处理和确保数据的可溯源性是两个重要的方面。通过标准化处理,我们可以将复杂的数据转化为易于管理和分析的形式;通过确保数据的可溯源性,我们可以验证数据的准确性和可靠性。这两个方面共同构成了数据治理的基石,为数据分析和挖掘提供了有力的支持。因此,我们应该重视数据治理工作,不断完善和优化数据治理体系,以应对日益复杂的数据挑战。
|
算法 数据中心 Python
Python雪花代码
在这段代码中,`SnowFlake`类用于生成唯一的ID。每次调用 `generate_id`方法时,它都会生成一个新的、唯一的ID。这个ID由时间戳、数据中心ID、工作机器ID和序列号组成,确保了在不同的时间、不同的数据中心、不同的工作机器上都能生成唯一的ID。
258 1
|
Shell Windows
电脑文件打开缓慢、右键卡顿解决方案
本文汇总了几种解决电脑文件打开缓慢和右键点击文件夹卡顿问题的方案,包括重启资源管理器、修改注册表中的Shell Extensions、以及设置在单独的进程中打开文件夹窗口。
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
463 0
|
机器学习/深度学习 人工智能 算法