Python:核心知识点整理大全11-笔记

目录

​编辑

6.2.4 修改字典中的值

 6.2.5 删除键—值对

注意 删除的键—值对永远消失了。

 6.2.6 由类似对象组成的字典

6.3 遍历字典

6.3.1 遍历所有的键—值对

6.3.2 遍历字典中的所有键

往期快速传送门👆(在文章最后):


6.2.4 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。例如, 假设随着游戏的进行,需要将一个外星人从绿色改为黄色:

alien_0 = {'color': 'green'}
print("The alien is " + alien_0['color'] + ".")
alien_0['color'] = 'yellow'
print("The alien is now " + alien_0['color'] + ".")

我们首先定义了一个表示外星人alien_0的字典,其中只包含这个外星人的颜色。接下 来,我们将与键'color'相关联的值改为'yellow'。输出表明,这个外星人确实从绿色变成 了黄色:

The alien is green.
The alien is now yellow.

来看一个更有趣的例子:对一个能够以不同速度移动的外星人的位置进行跟踪。为此,我们 将存储该外星人的当前速度,并据此确定该外星人将向右移动多远:

alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'}
print("Original x-position: " + str(alien_0['x_position']))
# 向右移动外星人
# 据外星人当前速度决定将其移动多远
1 if alien_0['speed'] == 'slow':x_increment = 1
elif alien_0['speed'] == 'medium':x_increment = 2
else:# 这个外星人的速度一定很快x_increment = 3
# 新位置等于老位置加上增量
2 alien_0['x_position'] = alien_0['x_position'] + x_increment
print("New x-position: " + str(alien_0['x_position']))

我们首先定义了一个外星人,其中包含初始的x坐标和y坐标,还有速度'medium'。出于简化 考虑,我们省略了颜色和点数,但即便包含这些键1 值对,这个示例的工作原理也不会有任何变 化。我们还打印了x_position的初始值,旨在让用户知道这个外星人向右移动了多远。 在处,使用了一个if-elif-else结构来确定外星人应向右移动多远,并将这个值存储在变 量x_increment中。如果外星人的速度为'slow',它将向右移动一个单位;如果速度为'medium', 将向右移动两个单位;如果为'fast',将向右移动三个单位。确定移动量后,将其与x_position 的当前值相加(见2 ),再将结果关联到字典中的键x_position。 由于这是一个速度中等的外星人,因此其位置将向右移动两个单位:

Original x-position: 0
New x-position: 2 

这种技术很棒:通过修改外星人字典中的值,可改变外星人的行为。例如,要将这个速度中 等的外星人变成速度很快的外星人,可添加如下代码行:

alien_0['speed'] = fast

这样,再次运行这些代码时,其中的if-elif-else结构将把一个更大的值赋给变量 x_increment。

 6.2.5 删除键—值对

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时, 必须指定字典名和要删除的键。 例如,下面的代码从字典alien_0中删除键'points'及其值:

alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
1 del alien_0['points']
print(alien_0)

1 处的代码行让Python将键'points'从字典alien_0中删除,同时删除与这个键相关联的值。 输出表明,键'points'及其值5已从字典中删除,但其他键—值对未受影响:

{'color': 'green', 'points': 5}
{'color': 'green'}

注意 删除的键—值对永远消失了。

 6.2.6 由类似对象组成的字典

在前面的示例中,字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以 使用字典来存储众多对象的同一种信息。例如,假设你要调查很多人,询问他们最喜欢的编程语 言,可使用一个字典来存储这种简单调查的结果,如下所示:

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',} 

正如你看到的,我们将一个较大的字典放在了多行中。其中每个键都是一个被调查者的名字, 而每个值都是被调查者喜欢的语言。确定需要使用多行来定义字典时,在输入左花括号后按回车 键,再在下一行缩进四个空格,指定第一个键—值对,并在它后面加上一个逗号。此后你再次按 回车键时,文本编辑器将自动缩进后续键—值对,且缩进量与第一个键—值对相同。

定义好字典后,在最后一个键—值对的下一行添加一个右花括号,并缩进四个空格,使其与 字典中的键对齐。另外一种不错的做法是在最后一个键—值对后面也加上逗号,为以后在下一行 添加键—值对做好准备。


注意 对于较长的列表和字典,大多数编辑器都有以类似方式设置其格式的功能。对于较长的 字典,还有其他一些可行的格式设置方式,因此在你的编辑器或其他源代码中,你可能 会看到稍微不同的格式设置方式。


给定被调查者的名字,可使用这个字典轻松地获悉他喜欢的语言:

favorite_languages.py

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
1 print("Sarah's favorite language is " +
2 favorite_languages['sarah'].title() +
3 ".")

为获悉Sarah喜欢的语言,我们使用如下代码:

favorite_languages['sarah']

在print语句中,我们使用了这种语法(见2);输出指出了Sarah喜欢的语言:

Sarah's favorite language is C. 

这个示例还演示了如何将较长的print语句分成多行。单词print比大多数字典名都短,因此 让输出的第一部分紧跟在左括号后面是合理的(见1)。请选择在合适的地方拆分要打印的内容, 并在第一行末尾(见)加上一个拼接运算符(+)。按回车键进入print语句的后续各行,并使 用Tab键将它们对齐并缩进一级。指定要打印的所有内容后,在print语句的最后一行末尾加上右 括号(见3)。

6.3 遍历字典


一个Python字典可能只包含几个键—值对,也可能包含数百万个键—值对。鉴于字典可能包含 大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的 方式:可遍历字典的所有键—值对、键或值。

6.3.1 遍历所有的键—值对

探索各种遍历方法前,先来看一个新字典,它用于存储有关网站用户的信息。下面的字典存 储一名用户的用户名、名和姓:

user_0 = {'username': 'efermi','first': 'enrico','last': 'fermi',} 

利用本章前面介绍过的知识,可访问user_0的任何一项信息,但如果要获悉该用户字典中的 所有信息,该怎么办呢?可以使用一个for循环来遍历这个字典:

user.py

user_0 = {'username': 'efermi','first': 'enrico','last': 'fermi',}
1 for key, value in user_0.items():
2 print("\nKey: " + key)
3 print("Value: " + value)

如1所示,要编写用于遍历字典的for循环,可声明两个变量,用于存储键—值对中的键和值。 对于这两个变量,可使用任何名称。下面的代码使用了简单的变量名,这完全可行:

for k, v in user_0.items() 

for语句的第二部分包含字典名和方法items()(见1),它返回一个键—值对列表。接下来, for循环依次将每个键—值对存储到指定的两个变量中。在前面的示例中,我们使用这两个变量来 打印每个键(见 2 )及其相关联的值(见 3 )。第一条print语句中的"\n"确保在输出每个键—值对 前都插入一个空行:

Key: last
Value: fermi
Key: first
Value: enrico
Key: username
Value: efermi

注意,即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存 储顺序,而只跟踪键和值之间的关联关系。

在6.2.6节的示例favorite_languages.py中,字典存储的是不同人的同一种信息;对于类似这 样的字典,遍历所有的键—值对很合适。如果遍历字典favorite_languages,将得到其中每个人 的姓名和喜欢的编程语言。由于其中的键都是人名,而值都是语言,因此我们在循环中使用变量 name和language,而不是key和value,这让人更容易明白循环的作用:

favorite_languages.py

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
1 for name, language in favorite_languages.items():
2 print(name.title() + "'s favorite language is " +language.title() + ".") 

1 处的代码让Python遍历字典中的每个键—值对,并将键存储在变量name中,而将值存储在变 量language中。这些描述性名称能够让人非常轻松地明白print语句(见2 )是做什么的。 仅使用几行代码,我们就将全部调查结果显示出来了:

Jen's favorite language is Python.
Sarah's favorite language is C.
Phil's favorite language is Python.
Edward's favorite language is Ruby.

即便字典存储的是上千乃至上百万人的调查结果,这种循环也管用

6.3.2 遍历字典中的所有键

在不需要使用字典中的值时,方法keys()很有用。下面来遍历字典favorite_languages,并 将每个被调查者的名字都打印出来:

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
1 for name in favorite_languages.keys():print(name.title())

1 处的代码行让Python提取字典favorite_languages中的所有键,并依次将它们存储到变量 name中。输出列出了每个被调查者的名字:

Jen
Sarah
Phil
Edward

遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_ languages.keys():替换为for name in favorite_languages:,输出将不变。

如果显式地使用方法keys()可让代码更容易理解,你可以选择这样做,但如果你愿意,也可 省略它。

在这种循环中,可使用当前键来访问与之相关联的值。下面来打印两条消息,指出两位朋友 喜欢的语言。我们像前面一样遍历字典中的名字,但在名字为指定朋友的名字时,打印一条消息, 指出其喜欢的语言:

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
1 friends = ['phil', 'sarah']
for name in favorite_languages.keys():print(name.title())
2 if name in friends:print(" Hi " + name.title() +", I see your favorite language is " +
3 favorite_languages[name].title() + "!")

在 1 处,我们创建了一个列表,其中包含我们要通过打印消息,指出其喜欢的语言的朋友。 在循环中,我们打印每个人的名字,并检查当前的名字是否在列表friends中(见 2 )。如果在列 表中,就打印一句特殊的问候语,其中包含这位朋友喜欢的语言。为访问喜欢的语言,我们使用 了字典名,并将变量name的当前值作为键(见 3 )。每个人的名字都会被打印,但只对朋友打印 特殊消息:

Edward
PhilHi Phil, I see your favorite language is Python!
SarahHi Sarah, I see your favorite language is C!
Jen 

你还可以使用keys()确定某个人是否接受了调查。下面的代码确定Erin是否接受了调查:

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}if 'erin' not in favorite_languages.keys():
print("Erin, please take our poll!")

方法keys()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键,因此 1  处的代码行只是核实'erin'是否包含在这个列表中。由于她并不包含在这个列表中,因此打印 一条消息,邀请她参加调查:

Erin, please take our poll!

Python:核心知识点整理大全1-笔记-CSDN博客

Python:核心知识点整理大全2-笔记-CSDN博客

Python:核心知识点整理大全3-笔记-CSDN博客

Python:核心知识点整理大全4-笔记-CSDN博客

Python:核心知识点整理大全5-笔记-CSDN博客

Python:核心知识点整理大全6-笔记-CSDN博客

Python:核心知识点整理大全7-笔记-CSDN博客

Python:核心知识点整理大全8-笔记-CSDN博客

Python:核心知识点整理大全9-笔记-CSDN博客

往期快速传送门👆(在文章最后):


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git的安装以及SSH配置

前言 近期工作需要,所以版本管理工具要用到Git,某些操作需要ssh进行操作,在某次操作中遇到:git bash报错:Permission denied, please try again。经排查是ssh没有配置我的key,所以就借着这篇文章整理了一下…

2024年网络安全竞赛-Web安全应用

Web安全应用 (一)拓扑图 任务环境说明: 1.获取PHP的版本号作为Flag值提交;(例如:5.2.14) 2.获取MySQL数据库的版本号作为Flag值提交;(例如:5.0.22) 3.获取系统的内核版本号作为Flag值提交;(例如:2.6.18) 4.获取网站后台管理员admin用户的密码作为Flag值提交…

redis 三主三从高可用集群docker swarm

由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。 官网介绍地址 re…

根据java类名找出当前是哪个Excel中的sheet

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

使用粗糙贴图制作粗纹皮革手提包3D模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

react新旧生命周期钩子

以下的内容根据尚硅谷整理。 旧生命钩子 辅助理解&#xff1a; 红色框&#xff1a;挂载时生命钩子蓝色框&#xff1a;更新时生命钩子绿色框&#xff1a;卸载时生命钩子 挂载时 如图所示&#xff0c;我们可以看到&#xff0c;在组件第一次挂载时会经历&#xff1a; 构造器&a…

学习记录---kubernetes动态卷使用---storageClass及驱动安装(nfs驱动)

一、简介 kubernetes中&#xff0c;在存储层面&#xff0c;我们常用到的两个资源是pv和pvc&#xff0c;其中pv是实际创建出来的一致性卷&#xff0c;我们可以通过pv将容器中的数据进行持久化保存&#xff0c;而pvc则可以理解为pod使用pv的中间控制器&#xff0c;通过pvc将pv绑…

自然语言处理第2天:自然语言处理词语编码

​ ☁️主页 Nowl &#x1f525;专栏 《自然语言处理》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 一、自然语言处理介绍二、常见的词编码方式1.one-hot介绍缺点 2.词嵌入介绍说明 三、代码演示四、结语 一、自然语言处理介绍 自然语言处理&#xf…

vue2-使用vue-i18n搭建多语言切换环境

安装 注意&#xff1a;vue2.0要用8版本的&#xff0c;使用9版本的会报错 npm install vue-i18n8.27.0 --save 创建相关的语言包文件 在src目录下&#xff0c;新建i18n文件夹 在新文件夹i18n中新建langs文件夹&#xff0c;里边放语言文本文件.js zh.js&#xff1a;存…

C#网络应用程序(Web页面浏览器、局域网聊天程序)

目录 一、创建Web页面浏览器 1.示例源码 2.生成效果 二、局域网聊天程序 1.类 2.服务器端 3.客户端 一、创建Web页面浏览器 TextBox 控件用来输入要浏览的网页地址&#xff0c;Button控件用来执行浏览网页操作&#xff0c; WebBrowser控件用来显示要浏览的网页。这个控…

本项目基于Spring boot的AMQP模块,整合流行的开源消息队列中间件rabbitMQ,实现一个向rabbitMQ

在业务逻辑的异步处理&#xff0c;系统解耦&#xff0c;分布式通信以及控制高并发的场景下&#xff0c;消息队列有着广泛的应用。本项目基于Spring的AMQP模块&#xff0c;整合流行的开源消息队列中间件rabbitMQ,实现一个向rabbitMQ添加和读取消息的功能。并比较了两种模式&…

Linux-centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器&#xff1f; 1 NFS基础了解 NFS&#xff08;Network File System&#xff09;即文件操作系统&#xff1b;NFS允许网络中不同计算机相互之间共享资源。 1.1 NFS概述 1980年由SUN发展出来的在UNIX&Linux系统间实现文件共享的一种方法…

键盘打字盲打练习系列之反复练习——3

一.欢迎来到我的酒馆 盲打&#xff0c;反复练习&#xff01; 目录 一.欢迎来到我的酒馆二.数字&符号键位指法1.数字键位指法2.符号键位指法 三.反复练习 二.数字&符号键位指法 前面的一个章节重点介绍了主键盘区字母键位的指法&#xff1a;基准键位指法、" QWERTY…

计算机基础知识65

cookie和session的使用 # 概念&#xff1a;cookie 是客户端浏览器上的键值对 # 目的&#xff1a;为了做会话保持 # 来源&#xff1a;服务端写入的&#xff0c;服务端再返回的响应头中写入&#xff0c;浏览器会自动取出来 存起来是以key value 形式&#xff0c;有过期时间、path…

【11】Qt Designer

目录 VSCode添加外部工具 QtDesigner PyUIC PyRCC 加载UI文件模板代码 QMainWindow QWidget 常用知识点 1. 修改标题图标 2. 图片资源管理 3. 图片按钮 4. 加载对话框 5. 动态加载Widget 6. 修改主题 其他注意事项 事件被多次触发 PyQt5提供了一个可视化图形工…

02 CSS基础入门

文章目录 一、CSS介绍1. 简介2. 相关网站3. HTML引入方式 二、选择器1. 标签选择器2. 类选择器3. ID选择器4. 群组选择器 四、样式1. 字体样式2. 文本样式3. 边框样式4. 表格样式 五、模型和布局1. 盒子模型2. 网页布局 一、CSS介绍 1. 简介 CSS主要用于控制网页的外观&#…

联合基于信息论的安全和隐蔽通信的框架

这个标题很帅 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息论安全 (ITS)隐蔽通信需要(CC)Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden 202…

章鱼网络进展月报 | 2023.11.1-11.30

章鱼网络大事摘要 1、2023年12月&#xff0c;Octopus 2.0 将会正式启动。 2、隐私协议 Secret Network 宣布使用 Octopus Network 构建的 NEAR-IBC 连接 NEAR 生态。 3、Louis 受邀作为嘉宾&#xff0c;在 NEARCON2023 的多链网络主题沙龙中发言&#xff1a;我们依然处于区…

2022年第十一届数学建模国际赛小美赛C题人类活动分类解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 C题 人类活动分类 原题再现&#xff1a; 人类行为理解的一个重要方面是对日常活动的识别和监控。可穿戴式活动识别系统可以改善许多关键领域的生活质量&#xff0c;如动态监测、家庭康复和跌倒检测。基于惯性传感器的活动识别系统用于通过…

2.postman环境变量及接口关联

一、环境变量以及全局变量 操作流程 1.点击environment 2.点击environment右侧号&#xff0c;新增环境变量 3.在变量中输入变量名以及变量值 4.回到collection页面&#xff0c;修改变量环境 5.在collection中通过{{变量名}}调用变量 变量定义 环境变量&#xff1a;环境变量…