python 第七章 字典dict {}

news2024/11/15 19:50:21

系列文章目录
第一章 初识python
第二章 变量
第三章 基础语句
第四章 字符串str
第五章 列表list []
第六章 元组tuple ( )


文章目录

  • 字典的应用场景
  • 创建字典的语法
  • 字典常见操作
  • 字典的循环遍历
    • 遍历字典的key
    • 遍历字典的value
    • 遍历字典的元素
    • 遍历字典的键值对(拆包)


字典的应用场景

思考1: 如果有多个数据,例如: Tom’,男20,如何快速存储?
答:列表 list1 = ['LiHua', '男', 20]

思考2:如何查找到数据’LiHua’?
答:查找到下标为0的数据即可 list1[0]

思考3: 如果将来数据顺序发生变化,如下所示,还能用 list1[0] 访问到数据’LiHua’吗?
list1 = [男',20,'LiHua']
答:不能,数据’LiHua’此时下标为2

思考4: 数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使用同一的标准查找数据呢?
答:字典,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。

创建字典的语法

字典特点:

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开

有数据字典:

  • dict1 = {'name': 'LiHua', 'age': 20, 'gender': '男'}

空字典:

  • dict2 = {}
  • dict3 = dict()
# 有数据字典
dict1 = {'name': 'LiHua', 'age': 20, 'gender': '男'}

print(type(dict1))  # <class 'dict'>
print(dict1)  # {'name': 'LiHua', 'age': 20, 'gender': '男'}

注意:一般称冒号前面的为键(key) 简称k;冒号后面的为值(value),简称v

字典常见操作

写法: 字典序列[key] = 值

注意:
1.如果key存在则修改这个key对应的值; 如果key不存在则新增此键值对。
2.字典为可变类型

# 有数据字典
dict1 = {'name': 'LiHua', 'age': 18, 'gender': '男'}

dict1['name'] = "意境"
print(dict1)  # {'name': '意境', 'age': 18, 'gender': '男'}

dict1['id'] = 52
print(dict1)  # {'name': '意境', 'age': 18, 'gender': '男', 'id': 52}

写法: 字典序列[key] = 值

注意: 如果key存在则修改这个key对应的值; 如果key不存在则新增此键值对。

  • del() / del: 删除字典或删除字典中指定键值对
    删除失败会报错
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

del (d1)
print(d1)  # 报错证明删除成功
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

del d1['name']
print(d1)  # {'age': 18, 'gender': '男'}
# del d1['name']  # 报错 KeyError: 'name' 没有name这个键了

  • clear(): 清空字典
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

d1.clear()
print(d1)  # {}

  • key值查找
    字典序列[key]

如果当前查找的key存在,则返回对应的值;否则则报错.
在这里插入图片描述

  • get()
    语法
    字典序列.get(key,默认值)

注意: 如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

在这里插入图片描述

  • keys() 查找字典中所有的key,返回可迭代的对象
    字典序列.keys()
    返回值:dict_keys,是一个可迭代的对象,也就是说我们可以用for循环遍历的一个对象
    在这里插入图片描述
  • 字典序列.values()
    查找字典中所有的值(value),返回可迭代的对象
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

print(d1.values())  # dict_values(['意境', 18, '男'])
print(type(d1.values()))  # <class 'dict_values'>
  • 字典序列.items()
    查找所有键值对,返回可迭代的对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值。
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

print(d1.items())  # dict_items([('name', '意境'), ('age', 18), ('gender', '男')])
print(type(d1.items()))  # <class 'dict_items'>

字典的循环遍历

遍历字典的key

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for key in d1.keys():
    print(key)
    print(d1[key])

在这里插入图片描述

遍历字典的value

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for value in d1.values():
    print(value)

在这里插入图片描述

遍历字典的元素

在这里插入图片描述

遍历字典的键值对(拆包)

我们对得到的键值对进行拆包动作

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for key,value in d1.items():
    print(f"{key} = {value}")

在这里插入图片描述

.items()返回的迭代对象内部是元组,一个元组一个键值对,元组里面有两个数据,第一个是字典的key,第二个是字典的value,所以我们拿了两个临时变量,意味着将元组里第一个数据存储到第一个临时变量,元组里第二个数据存储到第二个临时变量,这就是把元组数据进行了分离,分别分离到了key、value两个临时变量做了接收,那么这个动作就是所谓的拆包动作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/657255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【新款DVR、NVR、直播、录播机单芯片解决方案】

新款DVR、NVR、直播、录播机单芯片解决方案 一、 22AP80或SS522V100是入门级DVR解决方案&#xff0c;能做到4路1080p30fps编码 2路 1080p30fps解码 多路图像分析方法智能算法&#xff1b;可以平替Hi3520DV510 二、 22AP10或SS524V100&#xff0c;这是一款中端的DVR芯片&#…

java语言中方法的多态

文章目录 前言一、多态是什么&#xff1f;二、使用步骤 1.实操展示2.注意事项总结 前言 自然界中&#xff0c;生物是多种形态的&#xff0c;繁殖这一行为也是多样的&#xff0c;细菌是裂殖&#xff0c;禽类是卵生&#xff0c;哺乳动物是胎生......java语言中的一个创建的方法&a…

Nike登录的acw_sc__v2参数逆向详细思路分析(非常简单,建议入手)含AST解混淆代码

分析目录 前言一、分析三、总结四、番外1.AST解混淆 前言 最近周末闲着无事&#xff0c;看了一下Nike的登录&#xff0c;发现连环境都不用补acw_sc__v2这个参数&#xff0c;分享出来给大家趣味性娱乐一下 一、分析 打开F12抓包看看登录 老样子复制curl给抓到Postman里面去…

Qt多线程编程之线程池

QThreadPool与QRunnable 线程的创建及销毁需要与系统交互&#xff0c;会产生很大的开销。若需要频繁的创建线程建议使用线程池&#xff0c;有线程池维护一定数量的线程&#xff0c;当需要进行多线程运算时将运算函数传递给线程池即可。线程池会根据可用线程进行任务安排。 QT…

Android studio自动登录和记住密码的实现

Android studio自动登录和记住密码的实现 文章目录 Android studio自动登录和记住密码的实现前言一、效果二、设计思路三、知识点介绍1. SharedPreferenced2. checkButton就不介绍了 四、自动登录及记住密码实现总结与补充 前言 大家好&#xff0c;我是oy&#xff0c;今天介绍…

浅层神经网络

目录 1、神经网络表示 2、计算神经网络的输出 3、多个样本的向量化 4、激活函数 5、激活函数的导数 6、神经网络的梯度下降法 1、神经网络表示 输入层&#xff1a;有输入特征&#x1d465;1、&#x1d465;2、&#x1d465;3隐藏层&#xff1a;四个结点&#xff0c;表示你…

验证性实验 - 逻辑回归

练习2&#xff1a;逻辑回归 介绍 在本练习中&#xff0c;您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法&#xff0c;来提高算法的鲁棒性&#xff0c;并用更复杂的情形来测试模型算法。 在开始练习前&#xff0c;需要下载如下的文件进行数据上…

前端Vue非常简单实用商品分类展示组件 侧边商品分类组件

前端vue非常简单实用商品分类展示组件 侧边商品分类组件 &#xff0c; 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id13084 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- flist:第一级数组 slist&#xff1a;第二级数组 tlist&…

JS 介绍 Babel 的使用及 presets plugins 的概念

一、Babel 是什么 Bebal 可以帮助我们将新 JS 语法编译为可执行且兼容旧浏览器版本的一款编译工具。 举个例子&#xff0c;ES6&#xff08;编译前&#xff09;&#xff1a; const fn () > {};ES5&#xff08;编译后&#xff09;&#xff1a; var fn function() {}二、B…

NLP实战:使用Word2vec实现文本分类

目录 一、数据预处理 1、加载数据 2. 构建词典 3.生成数据批次和迭代器 二、模型构建 1.搭建模型 2.初始化模型 3.定义训练与评估函数 三、训练模型 1. 拆分数据集并运行模型 2. 测试指定数据 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&…

设计模式篇---单例模式

文章目录 概念结构与实现优缺点 概念 单例模式是结构最简单的设计模式&#xff0c;通过单例模式可以保证在整个系统中的一个类只有一个实例&#xff0c;从而节约系统资源。举个例子&#xff0c;比如windows电脑下的任务管理器只能打开一个&#xff0c;这个就是单例模式&#x…

【C语言进阶】程序员必备技能之文件操作

目录 &#x1f945;什么是文件&#xff1a; &#x1f3d1;程序文件&#xff1a;&#x1f3d1;数据文件&#xff1a; &#x1f3d1;文件名&#xff1a; &#x1f945;文件的打开和关闭&#xff1a;&#x1f3d1;文件指针&#xff1a; &#x1f3d1;fopen和fclose&#xff1a; &a…

genlogic GLG -CE 4.3 For Java/C#/C++ Crack

GLG CE工具包是一个极其灵活和强大的图形框架&#xff0c;用于构建显示实时数据的可视化界面&#xff0c;例如过程控制和监控的操作员显示、SCADA / HMI模拟和图表、 交通、遥测和网络监控显示&#xff0c;以及其他任务关键应用程序。 航电仪表板演示 该工具包包括 用于创建动…

面向对象三大特征

面向对象三大特征 众所周知&#xff0c;面向对象有三大特征 封装继承多态 封装继承多态&#xff0c;就好像武侠小说里的“金、木、水、火、土”一样&#xff0c;相生相克 封装 封装就像是武侠里的金钟罩铁布衫&#xff0c;把对象的数据和方法封装起来&#xff0c;对外只暴露…

C语言strstr函数的使用和模拟实现

strstr 函数原型&#xff1a; char *strstr( const char *string, const char *strCharSet );const char *string 要搜索的字符串const char *strCharSet 子串char *strstr 返回第一个出现字串的起始地址&#xff0c;方便函数链式访问 函数作用&#xff1a; 在 string 字符串…

逻辑越权之验证码|token|接口(36)

token是类似于会话一串数字代表数据包的唯一性&#xff0c;数据包的编号&#xff0c;防止一些csrf&#xff0c;或者一些存放数据包的攻击&#xff1b;一般数据包里面有token&#xff0c;就会检验数据包的唯一性&#xff0c;就会造成提交数据包&#xff0c;被token拦截掉。 验证…

第八章 图像压缩

文章目录 第八章 图像压缩8.1基础知识8.1.1 编码冗余8.1.4图像信息的度量8.1.5保真准则8.1.6图像压缩模型8.17图像格式、容器和压缩标准 8.2一些基本的压缩方法8.2.1霍夫曼编码8.2.2Golomb编码8.2.3算术编码8.2.4LZW编码8.2.5行程编码8.2.6基于符号的编码8.2.7比特平面编码8.2.…

JVM调优常用的工具JPS、JMAP、JSTAT、JSTACK和JCMD的使用详解

查看PID信息 首先启动一个服务 使用jps 和 jps -l 的区别&#xff0c;使用jps -l 能够显示出服务的名称 熟悉JVM调优中常用的工具JMAP、JSTAT和JSTACK JMAP、JSTAT和JSTACK是Java开发中常用的工具&#xff0c;用于分析和调试Java应用程序。它们的使用场景如下&#xff1a; JMA…

S7 1200 CM1241组态modbus rtu

S7 1200 V4.5版本 CM1241 V2.0版本 1 一开始遇到问题 CM1241 绿色灯一直闪烁, PLC 显示LED红色错误 网上查找可能固件不匹配 我一开始选的V2.2 最后选到V2.0才行 如果CM1241 绿灯变为常亮, 这样才是正确组态 如果不是常亮,那么是没有输出的 2 程序 弄了M1.0来启动配置m…

K-means算法

文章目录 1. K-means算法简介2. K-means算法原理2.1 算法具体步骤2.2 k取值方法2.2.1 手肘法2.2.2 轮廓系数法 2.3 K-means2.4 算法终止条件 3. K-means算法特点4. K-means算法应用场景5. K-means算法的Python应用5.1 K-means算法的Python实现5.2 sklearn.cluster.Kmeans函数的…