当前位置: 首页 > news >正文

【Python入门第十五天】Python字典

字典(Dictionary)

字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。

实例

创建并打印字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
print(thisdict)

运行实例

访问项目

您可以通过在方括号内引用其键名来访问字典的项目:

实例

获取 “model” 键的值:

x = thisdict["model"]

运行实例

还有一个名为 get() 的方法会给你相同的结果:

实例

获取 “model” 键的值:

x = thisdict.get("model")

运行实例

更改值

您可以通过引用其键名来更改特定项的值:

实例

把 “year” 改为 2019:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict["year"] = 2019

运行实例

遍历字典

您可以使用 for 循环遍历字典。

循环遍历字典时,返回值是字典的键,但也有返回值的方法。

实例

逐个打印字典中的所有键名:

for x in thisdict:print(x)

运行实例

实例

逐个打印字典中的所有值:

for x in thisdict:print(thisdict[x])

运行实例

实例

还可以使用 values() 函数返回字典的值:

for x in thisdict.values():print(x)

运行实例

实例

通过使用 items() 函数遍历键和值:

for x, y in thisdict.items():print(x, y)

运行实例

检查键是否存在

要确定字典中是否存在指定的键,请使用 in 关键字:

实例

检查字典中是否存在 “model”:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
if "model" in thisdict:print("Yes, 'model' is one of the keys in the thisdict dictionary")

运行实例

字典长度

要确定字典有多少项目(键值对),请使用 len() 方法。

实例

打印字典中的项目数:

print(len(thisdict))

运行实例

添加项目

通过使用新的索引键并为其赋值,可以将项目添加到字典中:

实例

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict["color"] = "red"
print(thisdict)

运行实例

删除项目

有几种方法可以从字典中删除项目:

实例

pop() 方法删除具有指定键名的项:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.pop("model")
print(thisdict)

运行实例

实例

popitem() 方法删除最后插入的项目(在 3.7 之前的版本中,删除随机项目):

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.popitem()
print(thisdict)

运行实例

实例

del 关键字删除具有指定键名的项目:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
del thisdict["model"]
print(thisdict)

运行实例

实例

del 关键字也可以完全删除字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
del thisdictprint(thisdict) #this 会导致错误,因为 "thisdict" 不再存在。

运行实例

实例

clear() 关键字清空字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.clear()
print(thisdict)

运行实例

复制字典

您不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在 dict2 中进行。

有一些方法可以进行复制,一种方法是使用内建的字典方法 copy()。

实例

使用 copy() 方法来复制字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
mydict = thisdict.copy()
print(mydict)

运行实例

制作副本的另一种方法是使用内建方法 dict()。

实例

使用 dict() 方法创建字典的副本:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
mydict = dict(thisdict)
print(mydict)

运行实例

嵌套字典

词典也可以包含许多词典,这被称为嵌套词典。

实例

创建包含三个字典的字典:

myfamily = {"child1" : {"name" : "Phoebe Adele","year" : 2002},"child2" : {"name" : "Jennifer Katharine","year" : 1996},"child3" : {"name" : "Rory John","year" : 1999}
}

运行实例

{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

或者,如果您想嵌套三个已经作为字典存在的字典:

实例

创建三个字典,然后创建一个包含其他三个字典的字典:

child1 = {"name" : "Phoebe Adele","year" : 2002
}
child2 = {"name" : "Jennifer Katharine","year" : 1996
}
child3 = {"name" : "Rory John","year" : 1999
}myfamily = {"child1" : child1,"child2" : child2,"child3" : child3
}

运行实例

{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

dict() 构造函数

也可以使用 dict() 构造函数创建新的字典:

实例

thisdict = dict(brand="Porsche", model="911", year=1963)
# 请注意,关键字不是字符串字面量
# 请注意,使用了等号而不是冒号来赋值
print(thisdict)

运行实例

字典方法

Python 提供一组可以在字典上使用的内建方法。

相关文章:

【Python入门第十五天】Python字典

字典(Dictionary) 字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。 实例 创建并打印字典: thisdict {"brand": "Porsche","model": "911&q…...

java学习思路

基础概念:了解Java的基本概念,如Java虚拟机(JVM)、Java标准版(Java SE)、Java企业版(Java EE)等。了解Java的版本、发展历程以及Java应用场景。可以通过阅读Java官方文档、相关书籍、…...

MySQL操作数据库-------创建数据库

搭建好MySQL环境后,现在我们正式的进入到MySQL的学习当中,这篇文章讲述如何去创建MySQL数据库。 1. 使用CREATE DATABASE创建数据库 语法格式:CREATE DATABASE database_name eg.打开MySQL命令行,查看当前MySQL中存在的数据库 my…...

【十】深入理解redolog,undolog和binlog的底层原理

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...

高频js手写题之实现数组扁平化、深拷贝、总线模式

前言 古人学问无遗力,少壮工夫老始成。纸上得来终觉浅,绝知此事要躬行。看懂一道算法题很快,但我们必须将这道题的思路理清、手写出来。 三道js手写题的思路和代码实现 数组扁平化 演示效果 将[1, [1, 2], [1, [2]]] 变成 [1, 1, 2, 1, 2] 第一种&…...

HTML介绍

文章目录一. HTML介绍二. 创建三. HTML结构四. 常见的标签五. 链接标签六. 图片标签七. 资源路径八. 列表标签九. 表格标签十. 表单标签十一. 表单提交一. HTML介绍 HTML: 超文本标记语言作用: 书写前端页面前端三大技术(三大标准): HTML: 结构标准 (页面中有什么内容)CSS: 样…...

【C++】string的9道OJ题

要么庸俗,要么孤独… 文章目录一、仅仅反转字母二、字符串中的第一个唯一字符(计数排序的思想)三、字符串相加(做好加进位的工作即可)四、把字符串转换成整数五、反转字符串中的单词 III六、字符串相乘(高…...

Odoo丨Odoo框架源码研读三:异常处理与定制化开发

Odoo丨Odoo框架源码研读三:异常处理与定制化开发 Odoo源码研读的第三期内容:异常处理与定制化开发。 *异常处理* Odoo中的Exception是对Python内置异常做了继承和封装,设定了自己核心的几个Exception。 而对异常的处理和Python内置异常的…...

Python概述 基础语法 判断 循环

Python概述常用快捷键第二章-Python基础语法01-字面量02-注释03-变量04-数据类型05-数据类型转换06-标识符07-运算符08-字符串的三种定义方式09-字符串的拼接10-字符串格式化11-字符串格式化的精度控制 12-字符串格式化-快速写法13-对表达式进行格式化14-字符串格式化练习题讲解…...

什么是品牌营销?学会正确推广您的业务

什么是品牌营销? 品牌营销涉及长期战略规划,以推广整个品牌,而不是营销单个产品或服务。它分享了一个引人入胜的故事,以在潜在客户中产生品牌知名度并建立声誉。 面向消费者的品牌使用品牌智能软件来了解人们对其品牌的看法&#…...

Golang学习Day1

😋 大家好,我是YAy_17,是一枚爱好网安的小白。本人水平有限,欢迎各位大佬指点,欢迎关注 😁,一起学习 💗 ,一起进步 ⭐ 。⭐ 此后如竟没有炬火,我便是唯一的光…...

《设计模式》工厂模式

《设计模式》工厂模式 工厂模式又分为简单工厂(Simple Factory)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)都是常用的创建型设计模式,它们的主要区别如下: 简单工厂…...

JS - 原型对象、原型链是什么

一 阅读掘金 https://juejin.cn/post/7007416743215759373 https://juejin.cn/post/7007416743215759373 二 阅读掘金小册原型知识点 原型 涉及面试题:如何理解原型?如何理解原型链? 当我们创建一个对象时 let obj { age: 25 }&#xff0…...

STM32f103 CubeMX封装 led程序

本文代码使用 HAL 库。 文章目录前言一、LED 原理图二、CubeMX创建工程三、LED 相关函数1. 输出电平函数:2. 延时函数:3. 翻转电平函数:四、详细代码实验现象 :总结代码 源码:前言 从这篇文章开始,我们讲解…...

智慧教室系统--温湿度控制系统

随着科技的不断进步,智能化已经成为了各个行业的发展趋势,智慧教室作为未来教育的主流趋势之一,也将受益于这一趋势。而智慧教室中的温湿度控制系统是其中的重要组成部分,为了创造一个舒适、健康、安全的教学环境,智慧…...

只要一直向前定能到达远方,社科院与杜兰大学金融管理硕士项目为你注入动力

在人生这条道路上,我们很远的路要走,不管前方是否平坦,我们只要坚持前向,终将抵达远方。一路上我们付出很多,也收获很多。想要变得更强大,就要不断优化自身,积攒更多的能量,社科院与…...

Java性能-回收算法-Throughout回收算法

垃圾回收算法 理解Throughput回收器 回收器三个基本操作——回收 找到不使用的对象 释放内存 压缩堆碎片 Minor GC和Full GC,每个操作都会标记,释放和压缩对应的目标分代 [63.205s][info][gc,start ] GC(13) Pause Full (Ergonomics) [63.205s][info][…...

立项近7年,索尼产品经理分享PS VR2开发背后的故事

备受期待的索尼PS VR2终于正式发售,VR爱好者们终于有机会体验到《地平线:山之呼唤》等PS VR2独占的VR大作。近期,为了解PS VR2头显诞生背后的故事,外媒AV Watch采访到PS VR2的开发负责人Yasuo Takahashi,在本次采访中&…...

Kubernetes 如何通过ingress-nginx实现应用灰度发布?

在日常的工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速的业务发展。我们经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧的全部被替换为止。蓝…...

华为OD机试 - 密室逃生游戏(Java) | 机试题+算法思路+考点+代码解析 【2023】

密室逃生游戏 小强增在参加《密室逃生》游戏,当前关卡要求找到符合给定 密码K(升序的不重复小写字母组成) 的箱子, 并给出箱子编号,箱子编号为 1~N 。 每个箱子中都有一个 字符串s ,字符串由大写字母、小写字母、数字、标点符号、空格组成, 需要在这些字符串中找到所有…...

XCTF-web-easyupload

试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...