Python 字典 get()函数使用详解,字典获取值

news2024/7/4 5:38:52

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

get函数使用详解

  • 1、设置默认返回值
  • 2、嵌套字典取值
  • 3、get() 和 dict[key] 的区别
  • 4、统计元素计数

get() 可以根据键「获取值」

语法

dict.get( key, value )

参数

  • key :(必选)指定要搜索的键
  • value :(可选)如果键不存在,就返回指定内容

返回值

  • 如果键存在,就返回键对应的值
  • 如果键不存在,就返回指定内容或None

实例:根据键获取字典的值

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1.get('key1'))

输出:

value1

1、设置默认返回值

get() 可以指定「默认」「返回值」,键不存在时,它不会报错,而是返回一个默认值,这样的好处是,程序在运行时不会出现异常的情况。

「不指定」返回值,键不存在时,默认返回 None

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1.get('key3'))
print(dict1.get('key3', None))

输出:

None
None

「指定」返回值,键不存在时,返回会指定的返回值

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1.get('key3', '指定返回值'))

输出:

指定返回值

返回值可以是整型、字符串、元祖、列表等各种数据类型

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1.get('key3', 1))
print(dict1.get('key3', 1.1))
print(dict1.get('key3', True))
print(dict1.get('key3', [1, 2]))
print(dict1.get('key3', (1, 2)))
print(dict1.get('key3', {1, 2}))

输出:

1
1.1
True
[1, 2]
(1, 2)
{1, 2}

2、嵌套字典取值

字典中「嵌套」字典时,可以多次调用 get() ,来取值。

dict1 = {'key1': 'value1', 'key2': {'key3': 'value3'}}
print(dict1.get('key2').get('key3'))

# 等价于这样
result = dict1.get('key2')
print(result)
result1 = result.get('key3')
print(result1)

输出:

value3
{'key3': 'value3'}
value3

3、get() 和 dict[key] 的区别

get() dict[key] 都可以根据键获取字典的值,不同的是

get() 的键在字典中不存在时,会返回「None」「指定内容」

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1.get('key3'))
print(dict1.get('key3', '指定内容'))

输出:

None
指定内容

dict[key] 的键在字典中不存在时,会「报错」 KeyError: ‘key3’

dict1 = {'key1': 'value1', 'key2': 'value2'}
print(dict1['key3'])

输出:

在这里插入图片描述


4、统计元素计数

get() 可以「统计」列表元素出现的「个数」,将统计结果保存到字典中

dict1 = {}
list1 = ['¥', '¥', '¥', '$', '$', '$', '$', '$']
for i in list1:
    dict1[i] = dict1.get(i, 0) + 1

print(dict1)

输出:

{'¥': 3, '$': 5}

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

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

相关文章

使用WebRTC实现多人视频会议

1.初步准备 1.1.使用同事nodejs开发的一个信令服务器。提供Https的WebSocket功能 1.2.准备一个多人视频会议的客户端Web程序client.html 2.遇到问题 2.1.在Tomcat下打开client.html,如果不使用http://127.0.0.1:8081/vedio/client.html,而使用实际IP…

DETR的位置编码

记录一下,以防忘记。 首先,致谢知乎vincent DETR论文详解 DETR中有这样一个类和一个包装函数 class NestedTensor(object):def __init__(self, tensors, mask: Optional[Tensor]):self.tensors tensorsself.mask maskdef to(self, device):# type: …

C知道,CSDN 出来的AI尝试

已经上图,算力不知道怎么样。 C知道 (csdn.net)

JDK、JRE与JVM三者之间的关系及区别

文章目录 0、关系1、JDK2、JRE3、JVM 0、关系 JDK JRE Java 开发工具包 [Java,Javac,Javadoc,Javap等]JRE JVM Java 的核心类库 1、JDK 什么是JDK,JDK是用于Java程序开发的最小环境,包含:Java程序设计语言,Java虚拟机&#…

git : 从入门到实战进阶

目录 0. 前言 1. git stash: 暂时保存本地修改 2. git push时发生冲突怎么办? 3. 访问过去的提交版本:git checkout 3.1 detached HEAD 3.2 “detached HEAD”状态下所作的修改会怎样呢? 3.3 “detached HEAD”状态下所作的修改如何汇…

leetcode100.相同的树

⭐️ 题目描述 🌟 leetcode链接:相同的树 1️⃣ 代码: bool isSameTree(struct TreeNode* p, struct TreeNode* q){// 判断两棵树当前结点是否为空if (p NULL && q NULL) {// 说明是相同的return true;}// 来到这里有几种情况// …

causal-learn ModuleNotFoundError: No module named ‘pygam‘

调用 causallearn 库包,测试CAM-UV算法时报错: No module named pygam 解决方法: pip install pygam 参考链接: 【Python Causal Learning Toolbox】causallearn 库包的使用、报错修改_板砖板砖我是兔子的博客-CSDN博客

java ArratList深拷贝

引用深拷贝 便捷方法 class Test {public static void main(String[] args) {ArrayList<User> list new ArrayList<>();for (int i 0; i < 3; i) {User user new User(i, "name" i);list.add(user);}ArrayList<User> list1 new ArrayList…

超细致的性能测试流程,你get了吗?

性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试的目的&#xff1a;找到潜在的性能问题或瓶颈&#xff0c;分析并解决&#xff1b;找出性能变化趋势&#xff0c;为后续扩展系统提供参考。测试监控&#xff1a;基准测试、配置测试…

【JavaEE】DI与DL的介绍-Spring项目的创建-Bean对象的存储与获取

Spring的开发要点总结 文章目录 【JavaEE】Spring的开发要点总结&#xff08;1&#xff09;1. DI 和 DL1.1 DI 依赖注入1.2 DL 依赖查询1.3 DI 与 DL的区别1.4 IoC 与 DI/DL 的区别 2. Spring项目的创建2.1 创建Maven项目2.2 设置国内源2.2.1 勾选2.2.2 删除本地jar包2.2.3 re…

(栈队列堆) 剑指 Offer 31. 栈的压入、弹出序列 ——【Leetcode每日一题】

❓ 剑指 Offer 31. 栈的压入、弹出序列 难度&#xff1a;中等 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序…

好的CRM需要有哪些特点?

CRM客户管理系统在企业中占有举足轻重的地位&#xff0c;既是战略工具又可以强化部门间的团队协作、优化销售流程、缩短销售周期。市面上crm做得比较好的公司有哪些&#xff1f; 1.上榜Gartner魔力象限 好的CRM市场的引领、产品研发的持续投入、技术创新以及不断增长的市场份…

面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#x…

划片机的作用将晶圆分割成独立的芯片

划片机是将晶圆分割成独立芯片的关键设备之一。在半导体制造过程中&#xff0c;晶圆划片机用于将整个晶圆切割成单个的芯片&#xff0c;这个过程被称为“晶圆分割”或“晶圆切割”。 晶圆划片机通常采用精密的机械传动系统、高精度的切割刀具和先进的控制系统&#xff0c;以确保…

Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

文章目录 引子举例说明 引子 AR&#xff08;Assigned Replication&#xff09;&#xff1a; 分区中的所有副本统称为AR&#xff08;Assigned Replicas&#xff09; ISR&#xff08;In-Sync Replicas&#xff09;&#xff1a;同步副本集合 ISR是指当前与主副本保持同步的副本集合…

JavaSwing+MySQL的酒店管理系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88063706?spm1001.2014.3001.5503 JDK1.8、MySQL5.7 功能&#xff1a;散客开单&#xff1a;完成散客的开单&#xff0c;可一次最多开5间相同类型的房间。 2、团体开单&#xff1a;完成团体…

找不到类NoClassDefFoundError: ionetty.util.intemnal.Platformlependent0

解决方案&#xff0c;jdk版本的问题&#xff0c;在project structure 中把项目jdk改为1.8

[GXYCTF2019]simple CPP

前言 三个加密区域&#xff0c;第一次是基本运算&#xff0c;八位叠加&#xff0c;z3方程 分析 第一轮加密&#xff0c;和Dst中模27异或 &#xff08;出题人对动调有很大意见呢&#xff09; 将输入的字符串按八位存入寄存器中&#xff0c;然后将寄存器内容转存到内存 第一次…

Tauri自带命令生成各平台图标

npm命令&#xff1a; npm run tauri icon yarn命令&#xff1a; yarn tauri icon 1.在项目根目录中放置一个app-icon.png (图片)文件: 图片最好长宽比是1:1&#xff1a;(其他好像会报错) 2.执行命令: npm run tauri icon 可以到文件里面查看 如果本地测试&#xff0c;图标…

记一次真实MySQL百万数据优化

证实下确实是150万+数据哈 原SQL 原SQL执行计划 原SQL执行时间 5秒左右 原SQL分析 思路来源 整体看下SQL好像没啥可优化的。那咱们就大错特错了。 可能有人会说B表为啥在A表后面不正常呀,因为这是内连接查询不是左右连接查询。A,B表的顺序是可以交换的(实测无影响) 首先我们…