python中字典的创建

news2024/11/30 0:31:46

1.字典的概念

字典是一种存储键值对的结构。

在python中能够根据键(key)来快速找到值(value)

根据key能够快速的找到value(一对一的映射关系)

在python的字典中,可以同时包含很多个键值对,同时要求这些键,不能重复。

2.创建字典

如上图所示,是a = {} 或者b = dict()这两种方式都可以去创建字典。

如上图所示,不是所有的数据类型都可以作为key,但是对于作为value的数据类型确实没有约束的。

使用英文逗号来分隔每一组的键值对,

在key的后面要用英文冒号来分隔value

英文逗号来分隔不同键值对,

冒号来分隔键和值,

3.在字典中查找key

1.使用in来判断key是否在字典中存在,并且返回布尔值。

因为in只是判断key是否在字典中存在,而和value无关,所以即使in所查找的值在字典中的value中存在,也只会返回False。

如上图所示,可以使用in来判断所查找内容在字典的key中是否存在,可以使用not in来判断key在字典中是否不存在。

2.可以使用[ ] 来根据key 获取到value

如上图所示,print(a[key])

这样的方式就可以获取到元组a中key所对应的value值。

如上图所示,KeyError表示当前查找的key在字典中是不存在的,

对于字典来说,使用in或者[ ]来获取value,都是非常高效的操作!

对于列表来说,使用in比较低效的,而使用[ ] 是比较高效的~

对于字典来说[key ]来获取value,使用了特殊的数据结构:哈希表

对于列表来说,使用[ ] 来获取元素类似于使用了类似于数组/顺序表取下标

对于列表来说,使用in比较低效的,因为需要把整个列表遍历一遍,

4.关于字典中的新增元素和修改元素操作

1.在字典中新增元素,使用[ ]来进行。

如上图所示,print(a['calssId']),当进行对字典的一个读取操作时,如果字典中没有相应的key,就会返回keyerror的操作,

如上图所示,a['score'] = 90 ,这个操作是对字典a中,添加一个key=score,value=90

2.在字典中根据已经存在的key修改value,

如果在字典a中根据已经存在key了,那么a[ 已经存在的key] = 新的value

这样的操作就是在修改已经存在的key的value值。

如果key不存在,往里写入,相当于新增键值对,

如果key不存在,往里写入,则相当于根据key修改value。

这里就和前面说的变量创建,是类似的~

a= 10#a当前不存在,这就是定义变量(创建新变量)

a = 20#a当前已经存在了,这里就是修改变量~

4.在python中删除一个键值对

字典的各种操作,就是针对key来进行的!

新增,删除,获取value,修改value

使用pop方法,根据key来删除键值对~

即字典名称.pop(key名称)

5. 理解字典操作的效率

这里常数级的意思是无论字典中有多少元素~

新增,修改,查找,删除,操作都是固定时间,不会因为元素多了,操作就慢了,

字典中的key要求不能重复。

6.字典的遍历

直接使用for循环来遍历字典

如上图所示,可以使用for循环来遍历字典,for key in 字典名称:print (key,a[key]) 

来实现key和value的配对输出

keys()获取到字典中的所有key

values()获取到字典中的所有values

items()获取到字典中的所有键值对。

print(a.keys())

如上图所示,是利用for key,value in a.items():

                                    print(key,value)

7.可哈希的类型

在python语言中列表和字典是不可哈希的,所以就不能作为字典的key

而元组等数据类型是可以哈希的,所以就能作为字典的key

一般认为在python中可变的对象,一般是不可以哈希的,而不可变的对象,一般是可哈希的。

而且在python中专门提供了一个函数hash,来计算一个数据的哈希值。

字典,列表,元组python语言中非常常用的内置类型!相比于int,str,float

他们内部可以再包含其他元素了,这就相当于容器类/集合类结构。

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

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

相关文章

江协科技STM32学习- 2安装Keil5-MDK

本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩…

基于小波脊线的一维时间序列信号分解方法(MATLAB R2018A)

信号分解技术是把一个复杂信号分解为若干含有时频信息的简单信号,研可通过分解后的简单信号来读取和分析复杂信号的有效特征。因此,信号分解技术对分析结果的影响是不言而喻的。 傅里叶分解是早期常用的信号分解方法,最初被用于分析热过程&a…

这些代码是APP自动化插件开发的关键!

在移动互联网高速发展的今天,APP的自动化插件开发成为了提升应用功能性和用户体验的重要手段。 而在这一过程中,五段源代码的巧妙运用往往能够起到事半功倍的效果,本文将为您科普分享这五段关键的源代码,帮助您更好地理解和应用自…

SJ708-II安全帽垂直间距配带高度测量仪

一、主要用途 依据GB/T2811-2007和GB/T2812-2006最新国家标准研发,主要用于安全帽垂直间距和配带高度试验,是安全帽生产企业办理生产许可证以及LA(劳安)认证,监督检测单位,科研机构必备安全帽检测设备。 二、仪器特征 1、采用铝…

3dmax材质高清参数设置图

3ds Max是一款在设计领域内非常受推崇的软件,以其强大的建模功能和丰富的材质库而知名。设计师可以通过调整材质的参数来制作出更加真实的渲染效果。本文将介绍一些技巧,教您如何通过简单的调整来优化3ds Max中的材质设置,从而增强作品的视觉…

【Linux】Linux环境基础开发工具_6

文章目录 四、Linux环境基础开发工具gdb 未完待续 四、Linux环境基础开发工具 gdb 我们已经可以写代码了,也能够执行代码了,但是代码错了该如何调试呢?Linux中可以使用 gdb 工具进行调试。 我们写一个简单的程序: 但是我们尝试…

机器学习笔记 - 用于3D数据分类、分割的Point Net的网络实现

上一篇,我们大致了解了Point Net的原理,这里我们要进行一下实现。 机器学习笔记 - 用于3D数据分类、分割的Point Net简述-CSDN博客文章浏览阅读3次。在本文中,我们将了解Point Net,目前,处理图像数据的方法有很多。从传统的计算机视觉方法到使用卷积神经网络到Transforme…

Swift 中更现代化的调试日志系统趣谈(一)

概述 昨天凌晨苹果刚刚发布了 WWDC2024 一系列新视频,这标志着苹果开发的一只脚已迈入人工智能(Apple Intelligence)的崭新时代。即便如此,我相信不少秃头码农们还在使用一些“远古简陋”的调试方法来剖析 2142 年的代码。 不过别担心,这一切将在小伙伴们学完本系列博文后…

Redis的一点入门了解

Redis NoSql概述 1、单机MySQL的时代 90年代,一个网站的访问量一般不会太大,单个数据库完全足够应付,技术上更多的会去使用静态页面html,对此服务器压根没多少压力; 但即使在这样的情况下,也会存在着一些…

doc 和 docx 文件的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

几行代码实现多对多网格视图

当我们希望实现如下图所示效果如何实现呢: 我们可以使用Vis.js,vis.js Vis Network Examples Vis.js 是一个支持多种网络可视化的库,使用简单,功能强大。 以下是具体实现例子 不带箭头的: <!DOCTYPE html> <html> <head><meta charset="utf…

Windows 系统下 JDK 1.8 与 17 版本的相互切换

目录 一、当前本机已安装的 JDK 版本&#xff1a;1.8 二、下载 JDK 17 三、修改系统配置&#xff0c;将 JDK 版本切换为 17 1、新建 JAVA17_HOME 2、编辑 Path 3、验证是否切换成功 4、之后想再切换成 JDK 1.8 一、当前本机已安装的 JDK 版本&#xff1a;1.8 二、下载 J…

pyecharts画水球图

水波图图是一种适合于展现单个百分比数据的图表类型 from pyecharts.charts import Grid,Liquid from pyecharts.commons.utils import JsCodel1 (Liquid()#设置数据系列名称及数据.add("lq",[0.7,0.6,0.25],center["60%","50%"],color[blue,ye…

图像处理与视觉感知复习--空间域图像增强

文章目录 图像增强直方图空间滤波器 图像增强 图像增强 { 处理方法 { 空间域方法 { 点处理 ( 变换 ) 模板处理 ( 滤波 ) 频域方法 处理策略 { 全局处理 局部处理 处理对象 { 灰度图像 彩色图像 图像增强 \begin{cases} 处理方法 \begin{cases} 空间域方法 \begin{cases} 点处理…

Hadoop 2.0:主流开源云架构(三)

目录 四、Hadoop 2.0体系架构&#xff08;一&#xff09;Hadoop 2.0公共组件Common&#xff08;二&#xff09;分布式文件系统HDFS&#xff08;三&#xff09;分布式操作系统Yarn&#xff08;四&#xff09;Hadoop 2.0安全机制简介 四、Hadoop 2.0体系架构 &#xff08;一&…

查分易分班查询系统怎么做?

分班查询一直是让许多老师头疼的问题。一到开学季&#xff0c;办公桌上就堆满了学生的资料和分班表。要将这些信息一一录入系统&#xff0c;然后发布给学生和家长极其浪费时间和精力&#xff0c;而且很容易出错。每当分班结果公布时&#xff0c;家长和学生急切地想要知道自己的…

第20篇 Intel FPGA Monitor Program的使用<三>

Q&#xff1a;如何用Intel FPGA Monitor Program创建汇编语言工程呢&#xff1f; A&#xff1a;我们用一个Nios II汇编语言简易应用程序来发掘Intel Monitor FPGA Program软件的一些功能特性&#xff0c;并介绍创建工程的基本步骤。该程序可以实现找到存储在存储器中的32位整…

「51媒体-年中大促」天津有哪些媒体资源-媒体宣传服务公司

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 天津的媒体资源相当丰富&#xff0c;涵盖了报纸、电视、广播、新闻门户网站、央媒驻天津机构、视频媒体以及全国媒体资源等多个方面。以下是详细的媒体资源分类和具体信息&#xff1a; 一…

Excel 多列组合内容循环展开

某表格 A 列是编号&#xff0c;其他列是用逗号分隔的意义不同的分类列 ABCDEFG1Assembly#ProductTypeUnit ConfigNominal CapacitySupply VoltageGenerationCase Construction23H1012290001CMD,P24,36FAA,B33H1012290002CMD,P48,60FA,BA,B43H1012290003CMD,P24,36B,C,D,EAA,B …

Windows外接显示屏显示无信号

我的电脑症状比较特别&#xff0c;启动后可以连接外接显示屏&#xff0c;一旦睡眠重新唤醒就会断联 显示器显示无信号&#xff0c;笔记本显示设置里只有自带显示器的信息 试了重启显示屏、重新插拔HDMI线、重新换端口都不行 最后解决方法&#xff1a; 属性-设备管理器-显示…