Python中的字典学习笔记

news2024/12/29 17:24:32

字典的格式:{"key":"value"}

key表示数据的含义,value表示对应的数据的值
字典是一种可变的数据类型,从python3.7开始,字典是有序的。

字典创建的方式

1、通过{},要使用key:value的格式,因为{}还可以用来创建集合。直接使用{}表示的是一个空的字典。。

注意:

字典的key必须是可以进行哈希计算的数据,可进行hash的数据结构通常是指能通过哈希函数hash()计算出唯一值的数据结构,比如整数、字符串、元组等。

整数 1 和浮点数 1.0 会被当作相同的键

像列表这种可变类型,是不能放在字典里面当key的哟

57a1db03841de7e01fd23c530cfc261c.png

用元组当key是不会报错的:

ca8fbc4a78ff21cd649ce87e90165f77.png

2、通过dict()去创建。

info = dict(name="小博", age=31, wechat="xiaobotester")
print(info)  
打印如下:
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester'}

字典修改

1、字典合并

info = dict(name="小博", age=31, wechat="xiaobotester")
info.update({"name":"张三","sex":"boy"})
print(info)
打印如下:
{'name': '张三', 'age': 31, 'wechat': 'xiaobotester', 'sex': 'boy'}

2、直接使用dict[key]=value进行修改或者添加key的值

info = dict(name="小博", age=31, wechat="xiaobotester")
info["sex"]="boy"
print(info)
打印如下:
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester', 'sex': 'boy'}

3、使用setdefault()方法。用于获取字典中指定键的值。如果键存在于字典中,则返回该键对应的值;如果键不存在于字典中,则将该键插入字典,并返回默认值(如果指定了默认值)或者 None。

info = dict(name="小博", age=31, wechat="xiaobotester")
print( info.setdefault("wechat","123"))
print( info.setdefault("wechat1","123"))
print( info.setdefault("wechat2"))
print(info)
打印如下:
xiaobotester
123
None
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester', 'wechat1': '123', 'wechat2': None}

字典删除相关的操作:

info = dict(name="小博", age=31, 公众号="小博测试成长之路")
info.pop("name")  # 移除指定的key-value的键值对
print(info)
info.popitem()  # 移除最后一个key-value的键值对
print(info)
info.clear()  #清空字典
print(type(info))
print(info)
打印如下:
{'age': 31, '公众号': '小博测试成长之路'}
{'age': 31}
<class 'dict'>
{}

也可以使⽤ del 字典[键] 可以删除字典中的指定元素:

info = dict(name="小博", age=31, wechat="xiaobotester")
del info["name"]
print(info)
打印如下:
{'age': 31, 'wechat': 'xiaobotester'}

字典的取值相关的操作:

最常见的一种方式就是dict[key],也可以用dict.get(key)进行取值。

先看看用中括号取值的缺点:

b6e236ca827c460d5185e19aff4fa9d1.png

从上面的实例中可以看出,中括号的这种方式取值,当key不存在的时候,取值会报错。我以前没学习其他用法的时候,都是用中括号取值,然后取值之前判断一下key是否存在,接下来我们看使用get方法取值:

5323909af01fbb6c2e235aba260f83f4.png

使用get的好处是:当字典里面的key不存在的时候,并不会报错,同时还可以设置默认值,这个用法的话,在一些场景下可以帮助我们精简很多代码。

字典的其他用法:

d = dict(a=1, b=2, c=3)
print(d.keys())  # 返回所有的key
print(d.values())  # 返回所有的value
print(d.items())  # 返回所有的key-value
打印结果:
dict_keys(['a', 'b', 'c'])
dict_values([1, 2, 3])
dict_items([('a', 1), ('b', 2), ('c', 3)])
d = dict(a=1, b=2, c=3)
for index, (key, value) in enumerate(d.items()):
    print(f"Index: {index}, Key: {key}, Value: {value}")
打印结果:
Index: 0, Key: a, Value: 1
Index: 1, Key: b, Value: 2
Index: 2, Key: c, Value: 3
 
 
 
 

End

 
 
 
 
 
 
 
 
 
 
想进学习交流群和同行一起探讨交流的可以加我好友,如果觉得文章对你有帮助的话,欢迎点赞转发~
 
 
👇👇👇

👆长按上方二维码2秒,关注我

关注公众号,测试干货及时送达0eaea6b8e8827d24da0e0ccc438e53af.png

往期精彩回顾

8908953ae0a7c122e9d2bb63ddda7ef8.png

一篇文章为你揭秘pytest的基本用法

Anaconda-一个开源的Python发行版本

Python脚本读取Consul配置信息

Python中使用pickle库进行数据的序列化存储

Python小知识-函数传参怎么设置期望的传参类型?

python解析xml遇到的问题分享(命名空间有关)

分享一下最近使用python字典取值用法的收获

Python里面怎么判断某个字符串是否包含列表中的某一个元素

Python中列表的extend()方法介绍

Python中鸭子类型与多态介绍

Python中的抽象基类介绍

Python中的type与isinstance的区别

Python中类的属性、多继承、自省机制中的__mro__、__dict__ 和dir介绍

Python中__new__和__init__的区别与联系

d85218a003eaeb1965a1e86ef64b6627.png


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

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

相关文章

​编程教室的文章是用什么库完成的?

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; Python 的一大特色是其丰富的模块&#xff0c;基本上只要你能想到的常见开发需求&#xff0c;都能找到别人已经实现的库直接使用&#xff0…

图的拓扑排序与关键路径

拓扑排序与关键路径是有向无环图上的应用。两种算法使用同一种动态规划的思想&#xff0c;因此关键路径的代码几乎和拓扑排序完全一样。 &#xff08;一&#xff09;拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序&#xff0c;是将G中所有顶点排成一…

由浅入深Netty入门案例

目录 1 概述1.1 Netty 是什么&#xff1f;1.2 Netty 的作者1.3 Netty 的地位1.4 Netty 的优势 2 Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理2.5 提示 1 概述 1.1 Netty 是什么&#xff1f; Netty is an asynchronous event-driven network application framework…

4.是人就能学会的Spring源码教程-IOC容器创建Bean对象

IOC容器创建Bean对象 简单了解Bean工厂 我们要关注一个接口BeanFactory&#xff0c;它是Spring IOC容器的根接口&#xff0c;也是容器的入口。 类的描述中已经清楚的说明了&#xff1a; 用于访问 Spring bean 容器的根接口。 这是 bean 容器的基本客户端视图&#xff1b;进一…

小牛电动疲软的销售趋势和不明朗的未来

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 小牛电动(NIU)的股价今年迄今为止已经下跌了6%。尽管该公司在蓬勃发展的电动汽车市场运营&#xff0c;但疫情的限制和欧洲的销售疲软导致小牛电动在欧市场的销量持续下降&#xff0c;猛兽财经认为&#xff0c;由于规模经济…

【LeetCode】528. 按权重随机选择

528. 按权重随机选择&#xff08;中等&#xff09; 思路 我们先把题目读懂。假设我们有数组 w[1,2,3,4], 那么这个数组的的和为 123 4 10 。我们得到 index (0,1,2,3) 的概率为 [1/10,2/10,3/10,4/10]。现在我们要返回(0,1,2,3) 中任意一个 index&#xff0c;但是我们要保证 p…

Docker安装MeiliSearch教程

MeiliSearch是一款开源的全文搜索引擎&#xff0c;它使用Rust编写&#xff0c;具有高效、快速、易用的特点。MeiliSearch支持多种语言&#xff0c;可以轻松地集成到任何应用程序中。它可以处理大量的文本数据&#xff0c;并能够快速地搜索和返回相关的结果。MeiliSearch还提供了…

[深度学习]大模型训练之框架篇-DeepSpeed

一 为什么需要Deepspeed 大模型&#xff08;LLM&#xff09;在训练时往往需要大量内存来存储中间激活、权重等参数&#xff0c;百亿模型甚至无法在单个 GPU上进行训练&#xff0c;使得模型训练在某些情况下非常低效和不可能。这就需要进行多卡&#xff0c;或者多节点分布式训练…

zabbix企业监控实战-1-zabbix部署

官网&#xff1a;https://www.zabbix.com 参考官网&#xff1a;https://www.zabbix.com/download?zabbix6.0&os_distributionrocky_linux&os_version8&componentsserver_frontend_agent&dbmysql&wsapache 1、环境准备 1> 修改主机名 [rootzabbix ~]# h…

Java --- redis7实现分布式锁

目录 一、锁的种类 二、分布式锁具备的条件与刚需 三、springbootredisngnix单机实现案例 四、Nginx配置负载均衡 4.1、修改nginx配置文件 4.2、执行启动命令 4.3、启动微服务程序测试 五、使用redis分布式锁 5.1、方法递归重试 5.2、自旋方式 5.3、添加key过期时间&#xff0…

业务实战记录4:多维表插入数据任务丢失处理与思考

本文目录 一、线程 bug二、解决方案2.1 加停顿2.2 单线程2.3 多 Token 三、一点花絮 很久没有写业务实战记录了&#xff0c;实际工作过程中其实遇到了挺多问题的&#xff0c;但是要通过 CSDN 记录下来&#xff0c;还是比较难的&#xff0c;因为场景和目标比较难说清楚&#xff…

【网络】HTTPHTTPS协议

文章目录 HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP请求协议格式简单的小实验 HTTP响应协议格式关于封装解包分用 HTTP的方法关于GET和POST方法概念GET&POST对比(代码测试)测试POST和GET方法的区别 HTTP的状态码关于重定向的状态码临时重定向的代码演示: HTTP的…

【文献研究】轴辐式航线网络设计—Liner hub-and-spoke shipping network design

学习文献&#xff1a;轴辐式航线网络设计—Liner hub-and-spoke shipping network design 3. 模型建立 轴辐式航线网络设计 三级轴辐式网络&#xff1a;喂给港-二级枢纽港-一级枢纽港 主要考虑的限制条件&#xff1a;多种类型的集装箱船舶、转运时间、多种类型的集装箱 转运操…

Kangas:计算机视觉中的Pandas

介绍 在计算机视觉领域&#xff0c;Kangas是一种越来越受欢迎的工具&#xff0c;用于图像数据处理和分析。类似于Pandas如何改变数据分析人员处理表格数据的方式&#xff0c;Kangas对计算机视觉任务也起到了同样的作用。 Kangas是Comet ML开源的工具&#xff0c;用于探索、分析…

【Http协议①】认识http协议,学会使用fiddler抓包工具进行抓包.

前言: 大家好,我是良辰丫,今天我们一起来学习http协议,http协议是应用层的协议,应用层是最接近程序员的,那么,http协议到底是什么呢?我们往下看.&#x1f49e;&#x1f49e; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&#xff1a;javaEE初阶 &#…

springboot+java养老院儿童福利院管理系统

安家儿童福利院管理系统包括儿童管理、申请领养管理、捐赠管理、楼栋管理、宿舍管理、分配信息管理、宿舍物品管理、报修管理、维修工管理、报修状态管理、留言管理、系统管理。通过对系统的实现得出安家儿童福利院管理系统具有安全稳定、操作简单、功能强大等特点&#xff0c;…

MySQL8.0卸载、安装和使用(二)

MySQL数据库的安装 注意&#xff1a; 必须用系统管理员身份运行mysql安装程序。安装目录切记不要用中文。 步骤一&#xff1a;双击mysql8的安装向导 步骤二&#xff1a;分为首次安装和再安装 1、首次安装 &#xff08;1&#xff09;如果是首次安装mysql系列的产品&#xff…

第06章_多表查询

第06章_多表查询 多表查询&#xff0c;也称为关联查询&#xff0c;指两个或更多个表一起完成查询操作。 前提条件&#xff1a;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段&#xff0c;这个关联字段可能建立了…

脑科学研究者的案头书(含下载资源)

脑科学研究者的案头书 <<< 回复关键词获取下载链接 >>> 《EEG Signal Processing and Machine Learning》&#xff08;Second Edition&#xff09; 简介&#xff1a; 《脑电信号处理与机器学习》书籍旨在描述脑电图(EEG)研究中的新技术和成果&#xff0c;主…

chatgpt赋能Python-python3捕获异常

Python3异常处理技术详解 在Python3中&#xff0c;异常处理技术是一项非常重要的工具。它能够帮助程序员避免不可预见的错误&#xff0c;减少不必要的程序崩溃&#xff0c;保证程序的稳定性。 什么是异常&#xff1f; 异常就是程序在执行过程中发生的错误或异常情况。不同的…