10.python的字典dict(上)

10.python的字典dict(上)

什么是字典

在这里插入图片描述

在计算机科学中,字典是一种数据结构,用于存储键值对(key-value pair)的集合。每个键值对都由一个唯一的键和一个对应的值组成。字典能够快速地根据键找到对应的值,因此在很多编程语言中都被广泛使用。

字典的实现方式可以有多种,常见的有哈希表(hash table)、红黑树(red-black tree)等。不同的实现方式对于字典的查询效率和内存占用等方面有不同的影响。

字典可以用于存储任何类型的数据,例如字符串、整数、实数等。在编程中,我们可以使用字典来表示一些键值对的关系,比如存储学生姓名和对应的分数,存储城市名称和对应的人口数量等。

简单的字典

dict_sample = {'name':'tom','age':20}


怎么访问字典中的值

dict_sample = {'name': 'tom', 'age': 20}# 访问字典中的值
name_value = dict_sample['name']
age_value = dict_sample['age']print(name_value)  # 输出 'tom'
print(age_value)   # 输出 20

在这个例子中,我们使用dict_sample['name']来访问字典中键为'name'的值,将其赋给name_value变量。同样地,使用dict_sample['age']来访问键为'age'的值,将其赋给age_value变量。最后,使用print()函数将这两个变量的值打印出来。结果将分别输出'tom'20

添加键值对

想要添加键值对到字典中,可以使用赋值操作符(=)来给指定键赋值。以下是一个示例,演示了如何向字典中添加键值对:

# 创建一个空字典
student_scores = {}# 添加键值对
student_scores['Tom'] = 90
student_scores['Alice'] = 85
student_scores['Bob'] = 70print(student_scores)  # 输出 {'Tom': 90, 'Alice': 85, 'Bob': 70}

修改字典中的值

使用赋值操作符(=)来给指定键赋新的值即可。以下是一个示例,演示了如何修改字典中的值:

# 创建一个字典
student_scores = {'Tom': 90, 'Alice': 85, 'Bob': 70}# 修改键的值
student_scores['Tom'] = 95
student_scores['Alice'] = 90print(student_scores)  # 输出 {'Tom': 95, 'Alice': 90, 'Bob': 70}

使用get来访问其中的值

使用get()方法来访问字典中的值具有以下几个优势:

处理键不存在的情况:使用get()方法可以避免当指定键不存在时抛出KeyError异常。如果使用字典的索引语法直接访问键值,当指定的键不存在时,会引发异常。但是使用get()方法时,可以提供一个默认值作为第二个参数,如果指定的键不存在,则返回默认值而不会引发异常。

更简洁的代码:使用get()方法可以实现更简洁的代码。如果直接使用索引语法来访问值,需要使用try-except语句来处理KeyError异常,这样会使代码变得冗长。而使用get()方法,可以一次完成访问值和处理不存在键的情况,使代码更加简洁和易读。

设置默认值:get()方法的第二个参数可以设置一个默认值。当指定的键不存在时,会返回该默认值。这对于处理键不存在的情况非常有用,可以在一次操作中同时获取值和设置默认值。

# 创建一个字典
student_scores = {'Tom': 90, 'Alice': 85, 'Bob': 70}# 使用get()方法访问值
score1 = student_scores.get('Tom')
score2 = student_scores.get('Alice')
score3 = student_scores.get('John', 0)  # 指定默认值为0print(score1)  # 输出 90
print(score2)  # 输出 85
print(score3)  # 输出 0

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

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

相关文章

Linux 常见性能分析方法论介绍(业务负载画像、下钻分析、USE方法论,检查清单)

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理内容涉及常用的性能调优方法论介绍:业务负载画像下钻分析USE方法论检查清单理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼…

二维码门楼牌管理应用平台建设:构建智慧社区新生态

文章目录 前言一、二维码门楼牌管理应用平台概述二、公益报名功能的实现方式三、二维码门楼牌管理应用平台在智慧社区建设中的作用四、结论与展望 前言 随着科技的快速发展,智慧城市建设已成为现代城市管理的重要方向。二维码门楼牌管理应用平台作为智慧社区建设的…

从零打造一款基于Nextjs+antd5.0的中后台管理系统

hi, 大家好,我是徐小夕,最近在研究nextjs, 为了更全面复盘总结nextjs, 我写了一个开箱即用的基于 next 的后台管理系统, 供大家学习参考. github地址:https://github.com/MrXujiang/next-admin 演示地址:http://next-a…

java AIO为什么用的并不多

Java AIO的本质是什么 原文:https://blog.csdn.net/hellojackjiang2011/article/details/131322757?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-131322757-blog-103915337.235%5Ev43%5Epc_blo…

python实验2

一、实验目的 掌握不同文件类型的读写掌握目录遍历的方法掌握json解析器的设计与实现 二、实验内容读取文件内容素数写入文件输出文件目录读写json文件实现json解析器 三、实验环境 在Educoder平台进行实验 四、实验要求 根据每个实训的每个关卡要求完成代码提交和测评 五、 实…

物联网实战--入门篇之(五)嵌入式-IIC驱动(SHT30温湿度)

目录 一、IIC简介 二、IIC驱动解析 三、SHT30驱动 四、总结 一、IIC简介 不管是IIC还是串口,亦或SPI,它们的本质区别在于有各自的规则,就是时序图;它们的相同点就是只要你理解了时序图,你就可以用最普通的IO引脚模…

RAG:检索增强生成系统如何工作

随着大型语言模型(LLM)的发展,人工智能世界取得了巨大的飞跃。经过大量数据的训练,LLM可以发现语言模式和关系,使人工智能工具能够生成更准确、与上下文相关的响应。 但LLM也给人工智能工程师带来了新的挑战&#xff…

SRS OBS利用RTMP协议实现音视频推拉流;WebRTC 屏幕直播分享工具

一、SRS OBS利用RTMP协议实现音视频推拉流 参考:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started 1)docker直接运行SRS服务: docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.co…

Chrome浏览器隐藏的截图功能配置及使用

来自实用又方便,轻松打开Chrome浏览器隐藏的截图功能!​​​​​​​ 一、通过谷歌Chrome浏览器 现在直接通过谷歌Chrome浏览器内置功能,免安装扩充插件也可以实现Chrome的截图和长截图功能了! 也不需要额外安装任何截图工具 &a…

蓝桥杯习题

https://www.lanqiao.cn/problems/1265/learning/ 第一题---排序 给定一个长度为N的数组A,请你先从小到大输出它的每个元素,再从大到小输出他的每个元素。 输入描述: 第一行包含一个整数N 第二行包含N个整数a1,a2,a3,...an,表…

Leaflet使用多面(MultiPolygon)进行遥感影像掩膜报错解决之道

目录 前言 一、问题初诊断 1、山重水复 2、柳暗花明 3、庖丁解牛 4、问题定位 二、解决多面掩膜问题 1、尝试数据修复 2、实际修复 3、最终效果 三、总结 前言 之前一篇讲解遥感影像掩膜实现:基于SpringBoot和Leaflet的行政区划地图掩膜效果实战&#xff0…

指针强化练习(详解)

更多学习内容 结构体内存对齐 和 位段-CSDN博客指针初级(基础知识)-CSDN博客指针进阶(深入理解)-CSDN博客 目录 1.sizeof与strlen的区别 2.一维数组 3.字符指针 4.二维数组 5.指针运算(笔试题) 6.函数指针 1.sizeof与strlen的区别 请思考以下运行结…

安装即启动?探索流氓App的自启动“黑科技” (Android系统内鬼之ContentProvider篇)

前段时间发现了一个神奇的app,它居然可以在安装之后立即自启动: 看到没有,在提示安装成功大概1到2秒后,就直接弹出Toast和通知了! 好神奇啊,在没有第三方app帮忙唤醒的前提下,它是怎么做到首次安…

C++2D原创我的世界1.00.3版本上市!!!

我很郁闷,为什么就是整不了昼夜交替啊喂!!!!!!!! 虽然这看上去很简单,但做起来要我命!!! 优化过后总共1312行&#xff0c…

DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧

遍历是指通过或遍历节点树 遍历节点树 通常&#xff0c;您想要循环一个 XML 文档&#xff0c;例如&#xff1a;当您想要提取每个元素的值时。 这被称为"遍历节点树"。 下面的示例循环遍历所有 <book> 的子节点&#xff0c;并显示它们的名称和值&#xff1a;…

Qt主窗口 之:停靠/悬浮窗口(QDockWidget)

一、QDockWidget概述 QDockWidget 是 Qt 中的一个窗口部件&#xff0c;用于创建可停靠的窗口&#xff0c;通常用于构建多文档接口&#xff08;MDI&#xff09;或可定制的用户界面。QDockWidget 允许用户将窗口停靠在应用程序的主窗口周围&#xff0c;或将其拖动到独立的浮动窗…

门控循环单元(GRU)

概述 门控循环单元&#xff08;Gated Recurrent Unit, GRU&#xff09;由Junyoung Chung等人于2014年提出&#xff0c;原论文为《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》。GRU是循环神经网络&#xff08;Recurrent Neural Network, …

实现富文本的三部曲

1、引入 ueditor.config.js ueditor.all.min.js lang/zh-cn/zh-cn.js 2、编辑器显示处 id"content" <textarea id"content" name"content"></textarea> 3、底部 <script type"text/javascript"> //实例化编辑器 …

2024.3.30学习笔记

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p295-p314 super关键字 super代表父类的引用&#xff0c;用于访问父类的属性、方法、构造器 super细节和语法 访问父类的属性&#xff0c;但不能访问父类的private属性 super.属性名 访问父类的…

回溯算法|39.组合总和

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum target) {result.push_back…