python容器四之字典

文章目录

  • 1. 字典介绍
  • 2. 使用字典
  • 3. 字典的常见操作
    • 3.1 添加元素
    • 3.2 删除元素
    • 3.3 修改元素
    • 3.4 查找元素
  • 4. 字典遍历方法
    • 4.1 遍历字典元素
  • 5. 公共运算符
  • 6. 公共方法

1. 字典介绍

先来看看现实生活中的字典。我们知道,可以应用字典来查找汉字。
在这里插入图片描述
在这里插入图片描述
接着,来看看Python中的字典。比如,定义一个本书:

{"name":"新华字典","page":568,"price":46.5}

仔细观察,会发现Python字典需要使用{ }引起来,且元素形式为键值对。
键值对,可以理解为一一对应的关系,即可以通过键找到值。

字典语法:

变量名 = {键1: 值1, 键2: 值2, ...}

== 注意==:

  • 键、值组合在一起,形成了字典的元素;

  • 字典元素的键是唯一的

  • 字典元素的值可以重复

  • 可以使用字典存储大量数据。
    实例:
    (1)定义一个字典变量,存放一个学生的信息:姓名、性别、住址、年龄等;

(2)输出并查看字典变量值与类型;

(3)思考1:若给字典变量存放两个性别信息,会怎样?

(4)思考2:若给字典变量再存放一个薪酬,与年龄值相同,会怎样?

# 1.定义字典变量
student = {"name":"欧阳芝","sex":"女","address":"广东广州","age":16}
# 2.查看类型和变量值
print(type(student))  # <class 'dict'>
print(student)
# 3.存放两个性别?  sex  键唯一?
student = {"name":"欧阳芝","sex":"女","address":"广东广州","age":16,"sex":"Female"}
print(student)   # 键是唯一的,如果有多个相同的键, 最后的键会把前面的键所对应的值都给覆盖了
# 4.value多个
student = {"name":"欧阳芝","sex":"女","address":"广东广州","age":16,"salary":16}
print(student)  # 值可以重复

总结:
字典与列表类似,都属于可变数据类型,即当添加元素后,长度也跟着变化。

2. 使用字典

通常情况下,使用字典的是获取元素键值对的值。

通过键来访问值的方式有两种。方式1:

变量名[键]

当访问不存在的键时,提升稳定性,可使用方式2:

函数名含义
get(key[, default])返回指定键key对应的值,若值不在字典中,则返回默认值。

实例:
(1)定义一个字典变量,存放一个学生的信息:姓名、住址、年龄等;

(2)分别使用不同方式去获取字典的姓名、住址值;

(3)思考:当访问不存在的性别信息时,会怎样?

# 1.定义变量
student = {"name":"小明","address":"广东广州","age":16,"sex":"Female"}
# 2.获取值
print(student["name"])
print(student["address"])  # 可以通过键来访问值# 3.访问不存在的值
print(student["sex"])
print(student.get("sex"))   # 1. None   2.不报错
print(student.get("sex","女"))

3. 字典的常见操作

3.1 添加元素

添加元素指的是:给字典添加新元素内容。

添加元素语法:

变量名[键] = 值

说明:当要添加多个元素时,则执行多次添加元素的操作。

实例:
(1)定义一个字典变量,存放老师信息:姓名、体重、年龄等;

(2)给老师变量添加一个兴趣爱好;

(3)思考:若给一个空字典添加2个元素,该怎么做?

(4)执行程序,观察效果。

# 1.定义变量
teacher = {"name":"teacher1","weight":95,"age":40}
print(teacher)
# 2.添加一个元素
teacher["gender"] = "男"
print(teacher)# 3.空字典添加2个元素
teacher = {}
teacher["name"] = "teacher2"
teacher["like"] = "爱好工作"
print(teacher)
print(type(teacher))

注意
字典中的元素不分先后顺序,可任意存储字典的数据。

3.2 删除元素

删除元素指的是:删除字典的某元素,或者清空字典的所有数据。

删除元素方法:

函数名含义
del 变量名[键]删除指定元素。
clear()清空字典的所有元素内容。

当要添加新的纯净数据前,要先把原有数据做清空处理。

实例:
(1)定义一个字典变量,存放老师信息:姓名、体重、年龄等;

(2)试着删除字典的体重元素;

(3)思考:当要给字典变量重新添加数据时,该怎么办?

teacher = {"name":"teacher1","weight":95,"age":40}
# 1.删除体重
del teacher["weight"]
print(teacher)# 2.重新添加数据
teacher.clear()
print(teacher)

总结:

(1)对于删除字典的元素数据,使用较少,了解即可;

(2)注意:在实际应用中,若需要重新给字典变量添加新数据,建议先使用clear()清空数据。

3.3 修改元素

修改元素指的是:对已有元素进行修改,当成功修改后,则会用最新修改的值替换原有值。

修改元素语法:

变量名[键] = 值

实例:
(1)定义一个字典变量,存放老师信息:姓名、体重、年龄等;

(2)修改字典变量的姓名、体重值。

teacher = {"name":"teacher1","weight":95,"age":40}
# 修改姓名
teacher["name"] = "teacher2"
# 修改体重
teacher["weight"] = 110
print(teacher)

3.4 查找元素

查找元素指的是:通过键来访问值。

比如,访问值的方式有两种:

变量名[键]
函数名含义
get(key[, default])返回指定键key对应的值,若值不在字典中,则返回默认值。

实例:
(1)定义一个字典变量,存放老师信息:姓名、体重、年龄等;

(2)使用两种方式来查看老师的姓名、年龄。

teacher = {"name":"teacher1","weight":95,"age":40}
print(teacher["name"])
print(teacher.get("age"))   # 若报错,则优先考虑使用get()

4. 字典遍历方法

当要遍历字典的元素内容,即获取字典的键、值。

常用方法:

函数名含义
keys()以列表的形式,返回一个字典所有的键。
values()以列表的形式,返回一个字典所有的值。
items()返回由键值组成的序列,主要应用于遍历字典。

为便于理解几个方法,可简要理解为:
在这里插入图片描述

4.1 遍历字典元素

keys()方法:

函数名含义
keys()以列表的形式,返回一个字典所有的键。

values()方法:

函数名含义
values()以列表的形式,返回一个字典所有的值。

items()方法:

函数名含义
items()返回由键值组成的序列,主要应用于遍历字典。

实例:
(1)定义一个字典变量,存放一个学生的信息:姓名、住址、年龄等;

(2)获取字典变量中的所有键,并输出【键 --> 值】形式结果;

(3)获取字典变量中的所有值并输出;

(4)获取字典变量中的所有键、值序列;

(5)执行程序,观察效果。

datas = {"name": "张三丰", "address": "武当山", "age": 147}# 1.keys()
for key in datas.keys():print(f"{key} --> {datas.get(key)}")# 2.values()
for value in datas.values():print(value)# 3.items()
for item in datas.items():print(item)for item in datas.items():key = item[0]value = item[1]print(f"{key} --> {value}")

5. 公共运算符

公共运算符指的是:可以运用于Python容器的一些通用方法。

常见公共运算符:

运算符描述支持的容器类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典

实例:
(1)定义字符串变量,并完成+、*的运算操作;

(2)定义列表变量,并完成in、not in的运算操作。

# 1.定义字符串, +  *
strs = "Hello"
ret1 = strs + "WORLD"
print(ret1)
print(strs*6)
print("-"*40)# # 提问
lists = [1,2,3]*2
# # A.[2,3,6]  B.[1,2,3,1,2,3]
print(lists)# 2.定义列表, in    not in
datas = [1,2,3,[13],100]   # 嵌套列表
print(1 in datas)
print(13 in datas)  # False
print([13] in datas)
print("hello" in datas)

6. 公共方法

公共方法指的是:能适用于Python容器的一些通用方法。

常见公共方法:

描述
len(s)计算容器中的元素总个数
del删除
max()返回容器中元素最大值
min()返回容器中元素最小值

实例:
(1)定义一个列表变量,内容为:10、300、20、200、30、100、0;

(2)获取列表变量的总长度;

(3)获取列表的最大值和最小值;

# 1.定义变量
lists = [10,300,20,200,30,100,0]
# 2.长度
print(len(lists))
# 3.最大最小值
print(max(lists))
print(min(lists))

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

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

相关文章

openstack之cinder介绍

概念 cinder 为虚拟机提供管理块存储服务。支持的文件系统&#xff1a;lvm、iscsi、nfs、san、RBD 组件构成及功能介绍 cinder api&#xff1a;在控制节点运行&#xff0c;管理服务的接口&#xff0c;被命令行、其他组件调用&#xff1b; cinder scheduler&#xff1a;类似n…

HTML标签优先级

HTML&#xff08;HyperText Markup Language&#xff09;标签的位置对于页面的结构、性能以及可维护性至关重要。合理安排标签的位置不仅有助于提高网页的加载速度&#xff0c;还能使得代码更加清晰易懂。以下是一些关于HTML标签放置的基本规则和建议&#xff1a; 1. 文档类型…

【查看谷歌浏览器的个人文件路径】

查看谷歌浏览器的个人文件路径 chrome://version/

第307题|快速掌握 反常积分敛散性判定的方法|武忠祥老师每日一题

解题思路&#xff1a;先判断这个反常积分的敛散性&#xff0c;再讨论a的取值范围; 判断反常积分的敛散性&#xff0c;我们通常有三个方法&#xff1a; &#xff08;1&#xff09;根据定义&#xff0c;通常在原函数比较好求的情况下&#xff0c;可以根据定义 &#xff08;2&am…

Windows上指定盘符-安装WSL虚拟机(机械硬盘)

参考来自于教程1&#xff1a;史上最全的WSL安装教程 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/386590591#%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85WSL2.0 教程2&#xff1a;Windows 10: 将 WSL Linux 实例安装到 D 盘&#xff0c;做成移动硬盘绿色版也不在话下 - 知乎 (z…

React源码学习(一):如何学习React源码

本系列源码学习&#xff0c;是基于 v16.13.1&#xff0c;v17.x与v16.x区别并不太大&#xff01; 一、如何正确的学习React源码&#xff1f; 找到Github&#xff0c;转到React仓库&#xff0c;fork / clone源码&#xff1a;React 查看Readme&#xff0c;在Documentation中有Cont…

昇思MindSpore AI框架MindFormers实践3:ChatGLM3-6B对一段文字进行提取

MindSpore和MindFormers安装参见&#xff1a;昇思AI框架实践1:安装MindSpoe和MindFormers_miniconda 安装mindspore-CSDN博客 使用了MindSpore2.2和MindFormers1.0 支持的模型&#xff1a; KeyError: "model must be in odict_keys([gpt2, gpt2_lora, gpt2_xl, gpt2_xl…

2024.9.14 Python与图像处理新国大EE5731课程大作业,马尔可夫随机场和二值图割,校正立体图像的深度

1.马尔科夫随机场和二值图割 马尔可夫随机场&#xff08;MRF, Markov Random Field&#xff09;&#xff1a; MRF 是一种用来描述图像像素之间空间关系的概率模型。它假设图像中的像素不仅取决于自身的值&#xff0c;还与周围像素有关。这种模型经常用于图像分割、去噪等任务。…

51单片机 - DS18B20实验1-读取温度

上来一张图&#xff0c;明确思路&#xff0c;程序整体裤架如下&#xff0c;通过单总线&#xff0c;单独封装一个.c文件用于单总线的操作&#xff0c;其实&#xff0c;我们可以把点c文件看成一个类操作&#xff0c;其属性就是我们面向对象的函数&#xff0c;也叫方法&#xff0c…

iPhone 16预售已开,沙漠金色最抢手,喜提新机后别忘了这件事!

9月13日20点&#xff0c;iPhone 16系列正式开启官方预购。今年全新的iphone16不仅新增相机按钮和AI功能&#xff0c;还增加了沙漠金配色。“加量不加价”的iPhone 16系列开售依旧火爆&#xff0c;iPhone 16系列开售1分钟内&#xff0c;苹果官方网站一度被消费者买到崩&#xff…

(Python+selenium)UI自动化测试

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前言 我们在进行UI自动化测试时&#xff0c;一般采用javaselenium或者pythonselenium的方式。由于python比较简单&#xff0c;上手快&#xff0c;因此建议大家采…

【第34章】Spring Cloud之SkyWalking分布式日志

文章目录 前言一、准备1. 引入依赖 二、日志配置1. 打印追踪ID2. gRPC 导出 三、完整日志配置四、日志展示1. 前端2. 后端 总结 前言 前面已经完成了请求的链路追踪&#xff0c;这里我们通过SkyWalking来处理分布式日志&#xff1b; 场景描述&#xff1a;我们有三个服务消费者…

Vue安装及环境配置【图解版】

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words&#xff01; 目录 一.node.js的安装…

2024/9/14 408大题专项训练之存储系统

组相联映射怎么算组号&#xff1f; 有cache总大小/路数xcache大小 物理地址与虚拟地址位数不一定相等&#xff0c;但是她们页内地址和块内地址位数是一样的&#xff01;

基于自己的数据库构建基于LLM的专属知识库

简介&#xff1a; 基于自己的数据库构建基于LLM的专属知识库 要基于自己的数据库构建基于LLM的专属知识库&#xff0c;你需要遵循以下步骤&#xff1a; 确定目标&#xff1a;首先&#xff0c;你需要明确你的知识库的目标。这可能是用于回答特定领域的问题、提供个性化的建议或…

微信这些危险设置一定要关!

你有仔细研究你的微信吗&#xff1f; 用了这么久的微信&#xff0c;才知道 有这么几个设置需要及时关闭&#xff01; 逐个操作更安心1️⃣取消不常用的免密支付和自动续费 我>服务>钱包>底部 支付设置>免密支付/自动续费2️⃣取消对附近陌生人授权位置 2️⃣取消对…

大数据新视界 --大数据大厂之Kafka消息队列实战:实现高吞吐量数据传输

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

成功晋级 | 3本ELSEVIER期刊正式被ESCI收录,最快的录用后2天即可出版

爱思唯尔&#xff08;ELSEVIER&#xff09;作为一家国际顶尖出版集团&#xff0c;自1880年创办以来&#xff0c;旗下出版期刊有2800多种&#xff0c;其中包含《柳叶刀》《细胞》等TOP期刊&#xff0c;在学术科研界享誉盛名。 根据八月份公布的最新SCI目录显示&#xff0c;ELSE…

UART 16550的使用

前言 本文从操作系统使用 16550 的角度来学习 16550。主要解析通用的串口寄存器的作用。 16550 串口由一系列寄存器控制串口行为。不同的具体设备寄存器的偏移不同&#xff0c;寄存器的长度可能不同。 例如&#xff0c;在 AXI UART 16550中&#xff0c;各寄存器长度都为 32 b…

每天五分钟玩转深度学习PyTorch:模型参数优化器torch.optim

本文重点 在机器学习或者深度学习中,我们需要通过修改参数使得损失函数最小化(或最大化),优化算法就是一种调整模型参数更新的策略。在pytorch中定义了优化器optim,我们可以使用它调用封装好的优化算法,然后传递给它神经网络模型参数,就可以对模型进行优化。本文是学习第…