Python 程序设计入门(013)—— 字典的操作(2):字典的常用操作总结

Python 程序设计入门(013)—— 字典的操作(2):字典的常用操作总结

目录

  • Python 程序设计入门(013)—— 字典的操作(2):字典的常用操作总结
    • 一、获取字典中元素的值
        • 1、使用 dictname[key]
        • 2、使用 get() 方法
    • 二、添加元素或修改 value 值
        • 1、使用 dictname[key]
        • 2、使用 update() 方法
    • 三、删除元素
        • 1、使用 pop() 方法删除元素
        • 2、使用 popitem() 方法删除元素
        • 3、使用 del 删除字典或字典中的元素
    • 四、合并字典
    • 五、返回字典的元素个数

一、获取字典中元素的值

1、使用 dictname[key]

格式如下:

dictname[key]

说明:如果 key 值在字典中不存在,则程序报错。

例如:

dict1 = {11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
print(dict1[11])
print(type(dict1[11]))
print(dict1[12])  # key不存在运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 4, in <module>print(dict1[12])  # key不存在
KeyError: 12

如果不确定 key 是否存在,可以采用如下方式操作:

dict1 = {11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
if 11 in dict1:print(dict1[11])print(type(dict1[11]))
if 12 in dict1:print(dict1[12])print(type(dict1[12]))
else:print("key值不存在")  # key不存在运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
key值不存在

2、使用 get() 方法

get() 方法的语法格式如下:

dictname.get(key)

说明:如果 key 值在字典中不存在,则返回 None。

如下:

dict1 = {11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
print(dict1.get(11))
print(type(dict1.get(11)))
print(dict1.get(12))  # key值不存在运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
None

二、添加元素或修改 value 值

1、使用 dictname[key]

格式如下:

dictname[key] = vlaue

说明:由于字典中的 key 是唯一的,如果 key 值在字典中不存在,则添加一个键值对;如果 key 值字典中已在键,则修改 value 的值。

例如:

dict1 = {11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
dict1[66] = "MySQL"
print(dict1)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{11: 'Java', 22: 'Python', 33: 'C++', 44: 'C#', 55: 'Rust', 66: 'MySQL'}

2、使用 update() 方法

update() 方法的语法格式如下:

dictname.update(key = value)

说明:如果 key 已经存在,则更新 value 值。如果 key 不存在,则添加新的键值对。

例如:

dict1 = {"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
dict1.update(Price = 52.5)  # key值存在,更新对应的value值
print(dict1)  
dict1.update(Remark = "教材")  # key值不存在,添加一个新的键值对
print(dict1)  运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 52.5}
{'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 52.5, 'Remark': '教材'}

三、删除元素

1、使用 pop() 方法删除元素

使用 pop() 方法删除字典中指定键对应的键值对,并返回被删除的值。pop() 方法的语法格式如下:

dictname.pop(key[,default])

参数说明:

(1)key:指定要删除的键。

(2)default:如果要删除的 key 不存在,返回 default 值。

(3)如果字典中要删除的键不存,并且没有指定 default 参数,则抛出 keyerror 异常。

例如:

dict1= {11:"Java",22:"Python",33:"C++",44:"Go",55:"Rust"}
item1 = dict1.pop(11,"要删除的值不存在")
print("pop()函数的返回值为:",item1)
print(type(item1))
print(dict1)
item1 = dict1.pop(12,"要删除的值不存在")
print("pop()函数的返回值为:",item1)
print(type(item1))
print(dict1)
item1 = dict1.pop(13)  # 出错
print("返回值为:",item1)
print(type(item1))
print(dict1)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
pop()函数的返回值为: Java
<class 'str'>
{22: 'Python', 33: 'C++', 44: 'Go', 55: 'Rust'}
pop()函数的返回值为: 要删除的值不存在
<class 'str'>
{22: 'Python', 33: 'C++', 44: 'Go', 55: 'Rust'}
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 10, in <module>item1 = dict1.pop(13)  # 出错
KeyError: 13

2、使用 popitem() 方法删除元素

使用 popitem() 方法删除字典中的最后一个键值对,并以元组(key, values)的形式返回这一键值对。popitem() 方法的语法格式如下:

dictname.popitem()

例如:

():返回值是一个元组(key,values)默认从后往前删除 修改放在asm中的voting文件

dict1 = {11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
item1 = dict1.popitem()
print("返回值:",item1)
print("返回值类型:",type(item1))
print(dict1)
item1 = dict1.popitem()
print(dict1)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
返回值: (55, 'Rust')
返回值类型: <class 'tuple'>
{11: 'Java', 22: 'Python', 33: 'C++', 44: 'C#'}
{11: 'Java', 22: 'Python', 33: 'C++'}

3、使用 del 删除字典或字典中的元素

(1)删除字典

格式如下:

del dictname 
或
del(dictname) 

例如:

dict1 = {"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
del dict1
print(dict1) 运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 3, in <module>print(dict1)
NameError: name 'dict1' is not defined

(2)删除字典中的元素

del dict1[key]del(dict1[key]) 

例如:

dict1 = {"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
del dict1["Price"]
print(dict1)  运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{'BookName': 'Java从入门到精通', 'Author': '郑云'}

四、合并字典

使用 update() 方法可以将一个字典的内容合并到另一个字典中。格式如下:

dict1.update(dict2)   # 将dict2合并到dict1

例如:

dict1 = {"BookName":"Java从入门到精通","Author":"郑云"}
dict2 = {"Price":59.8,"Remark":"教材"}
dict1.update(dict2)
print(dict1)  运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 59.8, 'Remark': '教材'}

五、返回字典的元素个数

使用 len() 函数可以返回字典的元素格式。格式如下:

len(dictname)

例如:

dict1 = {"BookName":"Java从入门到精通","Author":"郑云","Price":59.8,"Remark":"教材"}
print(len(dict1)) 运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
4

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

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

相关文章

JUC并发编程之CAS

目录 1.什么是CAS 1.1 CAS的定义 1.2 CAS的应用场景 2. CAS的原理 2.1 比较和交换操作 2.2 CAS的实现原理 2.3 CAS的ABA问题及解决方案 3. Java中的CAS 3.1 java.util.concurrent.atomic 包 3.2 AtomicInteger 与 AtomicLong 3.3 ABA问题的解决&#xff1a;AtomicSta…

JavaScript 原型链解析,宏任务和微任务

目录 什么是原型链&#xff1f; 原型与构造函数 原型链的工作原理 实例&#xff1a;理解原型链 宏任务&#xff08;Macro Task&#xff09; 微任务&#xff08;Micro Task&#xff09; 什么是原型链&#xff1f; JavaScript 是一门基于原型的语言&#xff0c;而原型链是…

C# 有效的字母异位词

242 有效的字母异位词 给定两个字符串 和 &#xff0c;编写一个函数来判断 是否是 的字母异位词。stts 注意&#xff1a;若 和 中每个字符出现的次数都相同&#xff0c;则称 和 互为字母异位词。stst 示例 1: 输入: s “anagram”, t “nagaram” 输出: true 示例 2: 输…

11. Redis基础知识

文章目录 一、概述二、数据类型STRINGLISTSETHASHZSET 三、数据结构字典跳跃表 四、使用场景计数器缓存查找表消息队列会话缓存分布式锁实现其它 五、Redis 与 Memcached数据类型数据持久化分布式内存管理机制 六、键的过期时间七、数据淘汰策略八、持久化RDB 持久化AOF 持久化…

Netty:ByteBuf的最大快速可以写入字节数

说明 通过io.netty.buffer.ByteBuf的maxFastWritableBytes()函数可以得到最大快速可写入字节数。最大快速可写入字节数表示没有内部再分配内存的情况下肯定可以写入的最大字节数。maxFastWritableBytes() capacity&#xff08;容量&#xff09; - writerIndexwritableBytes()…

【C++从0到王者】第十八站:手把手教你写一个简单的优先级队列

文章目录 一、优先级队列简介二、优先级队列的接口说明1.基本介绍及其使用2.构造函数3.求数组中第k个最大的元素 三、手撕优先级队列四、仿函数1.仿函数介绍2.优先级队列添加仿函数3.需要自己写仿函数的情形 五、优先级队列完整代码 一、优先级队列简介 优先级队列是一种容器适…

Java经典面试题总结(一)

Java经典面试题总结&#xff08;一&#xff09; 题一&#xff1a;Java编译运行原理题二&#xff1a;JDK&#xff0c;JVM&#xff0c;JRE三者之间的关系题三&#xff1a;谈一下对冯诺依曼体系的了解题四&#xff1a;重载与重写的区别题五&#xff1a;拆箱装箱是指什么&#xff1…

Diffusion-GAN: Training GANs with Diffusion

目录 Abstract 1. Introduction 2. Preliminaries: GANs and diffusion-based generative models 3. Diffusion-GAN: Method and Theoretical Analysis 3.1 Instance noise injection via diffusion 3.2 Adversarial Training 3.3 Adaptive diffffusion 3.4 Theoretica…

微服务技术栈

微服务技术栈是指在开发和构建微服务架构时使用的一组技术和工具。微服务架构是一种软件开发模式&#xff0c;将一个大型应用程序拆分为一组小型、自治的服务&#xff0c;每个服务独立部署、可独立扩展&#xff0c;并通过轻量级的通信机制进行互相协作。 微服务技术栈通常包括…

Netty 入门指南

文章目录 前言Netty介绍Netty发展历程Netty核心组件实现HTTP服务器总结 前言 上文《BIO、NIO、IO多路复用模型详细介绍&Java NIO 网络编程》介绍了几种IO模型以及Java NIO&#xff0c;了解了在网络编程时使用哪种模型可以提高系统性能及效率。即使Java NIO可以帮助开发人员…

44.实现爱尔兰B公式计算并输出表格(matlab程序)

1.简述 1.话务量定义 话务量指在一特定时间内呼叫次数与每次呼叫平均占用时间的乘积。 话务量反映了电话负荷的大小&#xff0c;与呼叫强度和呼叫保持时间有关。呼叫强度是单位时间内发生的呼叫次数&#xff0c;呼叫保持时间也就是占用时间。 话务量计算方法 话务量公式为…

[CKA]考试之集群故障排查 – kubelet故障

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 一个名为wk8s-node-0的节点状态为NotReady&#xff0c;让其他恢复至正常状态…

c++调用ffmpeg api录屏 并进行udp组播推流

代码及工程见https://download.csdn.net/download/daqinzl/88155241 开发工具&#xff1a;visual studio 2019 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 ffplay udp://224.1.1.1:5001 主要代码如下: #include "pch.h" #include <iostream>…

RANSAC算法在Python中的实现与应用探索:线性拟合与平面拟合示例

第一部分:RANSAC算法与其应用 在我们的日常生活和多个领域中,如机器学习,计算机视觉,模式识别等,处理数据是一个非常重要的任务。尤其是当我们需要从嘈杂的数据中获取信息或拟合模型时。有时候,数据可能包含异常值或噪声,这可能会对我们的结果产生重大影响。为了解决这…

【搜索】DFS剪枝与优化

算法提高课笔记 目录 小猫爬山题意思路代码 数独题意思路代码 木棒题意思路代码 生日蛋糕题意思路代码 剪枝是什么意思呢&#xff1f; 我们知道&#xff0c;不管是内部搜索还是外部搜索&#xff0c;都可以形成一棵搜索树&#xff0c;如果将搜索树全部遍历一遍&#xff0c;效率…

【深度学习_TensorFlow】误差函数

写在前面 搭建完网络层后&#xff0c;在每层网络中都要进行前向计算&#xff0c;下一步就是选择合适的误差函数来计算误差。其中均方差函数和交叉熵函数在深度学习中比较常见&#xff0c;均方差函数主要用于回归问题&#xff0c;交叉熵函数主要用于分类问题。 写在中间 均方差…

低功耗LoRaWAN国产低功耗LoRa+RF射频前端芯片XD6500S

目录 典型应用XD6500S简介芯片特性 LoRa系列选型参考 LoRa是为低数据速率、远距离距离和超低功耗而优化的扩频协议&#xff0c;用于LPWAN应用程序的通信。 典型应用 一、智慧农业   智慧农业大田解决方案利用传感设备、自动化控制设备、气象站实时监测采集田间土壤墒情、气象…

【Java面试】Nacos自动注册原理实现以及服务注册更新并如何保存到注册表

文章目录 Nacos自动注册原理实现服务注册更新并如何保存到注册表 Nacos自动注册原理实现 完整流程 我们知道SpringBoot提供了挂载点的方式来帮助我们的类完成自动注入。 Nacos再META-INF的spring.factories这个文件中添加了自己需要自动注入的Bean对象。 叫做NacosServiceRegi…

HTTP协议——应用层

HTTP协议 只要保证, 一端发送时构造的数据, 在另一端能够正确的进行解析, 就是ok的. 这种约定, 就是 应用层协议 HTTP简介 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;协议又叫做超文本传输协议&#xff0c;是一个简单的请求-响应协议&#xff0c;HTTP通常运行…

MyBatis简介及环境配置

文章目录 一、什么是MyBatis二、MyBatis开发环境配置1.创建数据库表2.添加MyBatis框架支持3.配置连接字符串和MyBatis4.添加业务代码流程 一、什么是MyBatis MyBatis是一种持久层框架&#xff0c;也是一种ORM框架&#xff08;Object Relational Mapping即对象关系映射&#xf…