Python之字典(dict)基础知识点

news2025/1/12 2:30:50

文章目录

  • 一、创建字典
    • 1.1 基于dict函数创建
    • 1.2 基于{}创建
    • 1.3 基于空字典添加元素创建
  • 二、访问字典
  • 三、修改字典
  • 四、删除字典
  • 五、字典的常用方法
    • 5.1 dict.items()方法
    • 5.2 dict.get()方法
    • 5.3 dict.setdefault()方法
  • 参考资料

字典是python当中的一种数据类型,其结果跟之前学过的列表、元组有很大区别,字典内部是一个一对一映射的数据关系。

字典语法:dictionary = {key1:value1, key2:value2, ...}

  • key是字典中的键,value是对应的值
  • 字典必须用大括号{},key与对应的value用“:”连接,中间用“,”断开。
  • key必须是数值、字符串、元组三种类型,其特点就是不可变,key在字典中是唯一的
  • value可以是任何数据类型.

一、创建字典

1.1 基于dict函数创建

stu_dict = dict(name='Mary', age=20, gender='female')

1.2 基于{}创建

stu_dict = \
{
    'name': 'Mary',
    'age': '20',
    'gender': 'female'
}

1.3 基于空字典添加元素创建

stu_dict ={}
stu_dict['name'] = 'Mary'
stu_dict['age'] = 20
stu_dict['gender'] = 'female'

基于上述3种创建方法,我们用 print(stu_dict) 输出的结果都是:
在这里插入图片描述

二、访问字典

stu_dict = dict(name='Mary', age=20, gender='female')

print(stu_dict['name'])
print(stu_dict['age'])
print(stu_dict['gender'])

输出结果如下:
在这里插入图片描述

三、修改字典

修改元素:

stu_dict = dict(name='Mary', age=20, gender='female')
stu_dict['age'] = 18  # 修改元素

print(stu_dict)
输出>>: {'name': 'Mary', 'age': 18, 'gender': 'female'}

增加元素:

stu_dict['school'] = "DPS School" # 增加元素
print(stu_dict)

输出>>: {'name': 'Mary', 'age': 18, 'gender': 'female', 'school': 'DPS School'}

四、删除字典

stu_dict = dict(name='Mary', age=20, gender='female')

del stu_dict['name']  # 删除键是'Name'的条目
stu_dict.clear()  # 清空词典所有条目
del stu_dict  # 删除词典

五、字典的常用方法

5.1 dict.items()方法

dict.items()方法将字典中所有的项以列表方式返回,但是在返回的时候没有特定的顺序。

stu_dict = dict(name='Mary', age=20, gender='female')
print(stu_dict.items())

输出>>: dict_items([('name', 'Mary'), ('age', 20), ('gender', 'female')])

基于dict.items()方法我们可以进一步遍历key和value来访问字典:

for key, value in stu_dict.items():
    print(key, ':', value)

输出结果如下:
在这里插入图片描述

5.2 dict.get()方法

当get访问一个不存在的键时,不会报错而会得到None值,它适用在程序 中用户若输入的是我们没有准备的值时可以作出合理的反应。

print(stu_dict.get('name'))
输出>>: Mary
print(stu_dict.get('id'))
输出>>: None

5.3 dict.setdefault()方法

setdefault方法与get方法类似,可以获得给定键的值,除此之外它还能在字典中不含有给定键的情况下设定相应的键值。

(1)获取键的值

print(stu_dict.setdefault('name'))
输出>>: Mary

print(stu_dict.setdefault('id'))
输出>>: None

(2)设定键值

dict.setdefault()方法在设定键值时,具体分为以下几种情况:

  • 当键不存在时,setdefault方法返回设定值并且更新字典。
stu_dict.setdefault('id', '001')
print(stu_dict)
输出>>: {'name': 'Mary', 'age': 20, 'gender': 'female', 'id': '001'}
  • 当键存在时,返回其对应的值,但是不改变字典(注:update方法是会覆盖到旧的值)
stu_dict.setdefault('name', 'Alice')
print(stu_dict)
输出>>: {'name': 'Mary', 'age': 20, 'gender': 'female'}

可以看到,这里基于dict.setdefault()方法将 name 设置成 Alice。实际上并没有改变字典,stu_dict 字典中的 name 值仍然是 Mary。

更多dict.setdefault()方法的介绍可以参考博客:

  • Python字典中的setdefault方法:https://blog.csdn.net/u012856866/article/details/118730348

参考资料

  • Python 字典(Dictionary)操作详解:https://www.jb51.net/article/47990.htm

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

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

相关文章

Kafka入门,手动提交offset,同步提交,异步提交,指定 Offset 消费(二十三)

手动提交offset 虽然offset十分遍历,但是由于其是基于时间提交的,开发人员难以把握offset提交的实际。因此Kafka还提供了手动提交offset的API 手动提交offset的方法有两种:分别commitSync(同步提交)和commitAsync(异步提交)。两者的相同点是&…

conda创建环境等相关知识

1、首先下载Anaconda,官网下载即可,打开如下选项, 2、创建一个环境:命令如下 conda create -n 虚拟环境名称 python?实例:创建一个pytorch环境,指定python版本为3.9版本 conda create -n pytorch pytho…

【七天入门数据库】第一天 MySQL的安装部署

系列文章传送门: 【七天入门数据库】第一天 MySQL的安装部署 【七天入门数据库】第二天 数据库理论基础 【七天入门数据库】第三天 MySQL的库表操作 MySQL数据库存在多种版本,不同的版本在不同的平台上(OS,也就是操作系统上&a…

文件资源管理器卡住,使用任务管理器结束任务后桌面图标和任务栏消失的解决方案

事情的起因是这样的,我想删除压缩包里的一张照片,结果文件资源管理器就卡住了,删除进度一直是0%,等了好久也没反应。没办法,只能掏出秘密武器任务管理器了,找到文件资源管理器,右键选择结束任务…

游戏渲染技术:前向渲染 vs 延迟渲染 vs Forward+渲染 (一)

在这篇文章中,会分析和对比三种渲染算法: 前向渲染(Forward Rendering)延迟着色(Deferred Shading)Forward(基于Tile的前后渲染) 介绍 前向渲染 前向渲染是通过在场景中光栅化每个几何对象来工作的,在着色过程中,通过迭代每个灯…

ModaHub魔搭社区:向量数据库Zilliz Cloud删除 Entity和删除 Collection教程

目录 删除单个 Entity 批量删除 Entity 开始前 操作步骤 使用限制 Entity 是指存储在 Zilliz Cloud 集群中的数据实体,包含用于处理、搜索和查询的数据。如果您不再需要某个 Entity,可以执行相关操作将其删除。 本文介绍如何从 Collection 中删除单个或多个 Entity。 …

RocketMQ5.0消息消费<三> _ 消息消费

RocketMQ5.0.0消息消费<三> _ 消息消费 一、消息消费 1. 消费UML图 PUSH模式消息拉取机制参考《RocketMQ5.0.0消息消费<一> _ PUSH模式的消息拉取​》,PullMessageService负责对消息队列进行消息拉取,从B…

Cocktail mac版-Cocktail 苹果版(清理维护优化工具)安装教程

Cocktail for Mac是一款Mac OS X系统清理、修复和优化的常规实用工具。它不仅可以一键清理系统中的残余垃圾。还可以帮助用户修改系统的隐藏属性、隐藏文件,对优化mac系统有很大的帮助。CocktailV11.4破解版增加了清除macOS内容缓存的功能。 内容缓存保留了各种Appl…

如何查看自己windows电脑的ip地址

可能有些小伙伴对查看自己电脑的ip地址不太熟悉,今天这里介绍几种方式: 我自己的电脑是Win11,就直接展示截图了。 一、命令行方式: windowsR打开 CMD(命令行窗口)或者windows PowerShell窗口,输入以下命令&#xff1…

企业信息化可以为企业带来什么效益?

一、什么是信息化 在具体谈信息化前我们先来谈一谈信息化和数字化 信息化:信息化是指培养、发展以计算机为主的智能化工具为代表的新生产力,并使之造福于社会的历史过程。与智能化工具相适应的生产力,称为信息化生产力。 数字化:…

MySQL基础篇第6章(多表查询)

文章目录 1、一个案例引发的多表连接1.1 案例说明1.2 笛卡儿积 2、多表查询分类讲解2.1 等值连接2.2 非等值连接2.3 自连接2.4 内连接2.5 外连接(OUTER JOIN)2.5.1 左外连接(LEFT OUTER JOIN)2.5.2 右外连接2.5.3 满外连接(FULL OUTER JOIN) 3、UNION的使用3.1 UNION操作符3.2 …

Linux 命令大全(下)

Linux 命令大全(上) 本文目录 6. 网络通讯 常用命令6.1 ssh 命令 – 安全的远程连接服务器6.1.1 含义6.1.2 语法格式6.1.3 常用参数6.1.4 参考示例 6.2 netstat 命令 – 显示网络状态6.2.1 含义6.2.2 语法格式6.2.3 常用参数6.2.4 参考示例 6.3 dhclient…

IP协议【图解TCP/IP(笔记九)】

文章目录 IP即网际协议IP相当于OSI参考模型的第3层网络层与数据链路层的关系 IP基础知识IP地址属于网络层地址路由控制■ 发送数据至最终目标地址■ 路由控制表 数据链路的抽象化IP属于面向无连接型 IP即网际协议 TCP/IP的心脏是互联网层。这一层主要由IP(Internet…

【netty】TCP 粘包和拆包及解决方案

TCP 粘包和拆包基本介绍 TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方&#xff0c…

电商API接口商品页面数据(详情数据,销量数据,sku数据,视频数据,优惠券数据)接口代码示例

有探讨稳定采集电商等多平台整站实时商品详情历史价格数据接口,通过该接口开发者可以更好地了解商品的情况,商品详情数据详细信息查询,数据参数包括:商品链接,商品列表主图、价格、标题,sku,库存…

技术流 | 使用eBPF增强kubernetes可观测性的实践分享

本文作者:擎创科技某大拿 01 背景与问题 当前,云原生技术主要是以容器技术为基础围绕着 Kubernetes的标准化技术生态,通过标准可扩展的调度、网络、存储、容器运行时接口来提供基础设施,同时通过标准可扩展的声明式资源和控制器来…

narak靶机详解

narak靶机复盘 首先对靶机进行扫描,找到靶机的真实ip地址。 然后dirb进行目录扫描,扫描到一个目录,我们打开发现是一个登陆界面。 并没有用户名和密码,我们就用cewl扫描这个网站,扫出一个字典,用来暴力破…

2、JDk、JRE、JVM三者区别和联系

JDK JRE JVM 含义 JDK: Java Develpment Kit java 开发工具 JRE: Java Runtime Environment java 运行时环境 JVM: java Virtual Machine java 虚拟机 一张图来解释: 联系: JVM不能单独搞定class的执行,解释class的时候JVM需要调用解…

Openlayers实战:非4326,3857的投影

Proj4js 是一个 JavaScript 库,用于将点坐标从一个坐标系转换到另一个坐标系,包括基准转换。Openlayers地图上,除了默认的4326和3857投影方式外,可以通过Proj4js的拓展,可以显示其他的投影。 本实战中,将ESRI:53009投射到Openlayers地图上。 安装依赖 npm install proj4…

java高级语法笔记

Java ArrayList java泛型语法介绍 https://www.runoob.com/java/java-generics.html 匿名函数->(Lambda 表达式 ,java8的新特性)