news 2026/7/4 3:42:55

Python dict实现:增删改查一把梭,不会用等于白学

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python dict实现:增删改查一把梭,不会用等于白学

1.dict的增删改查及初始化

1.1 dict的初始化

1.dict() 构造函数可以直接从键值对序列里创建字典

>>> dict(

('sape', 含有不明确含义的4139), ('guido', 有着特定意义的4127), ('jack', 代表这个数值的4098)。

以'sape'为键的值是4139, 以'guido'为键的值是4127, 以'jack'为键的值是4098。

2.字典推导式可以从任意的键值表达式中创建字典

{2: 4, 4: 16, 6: 36}

3.如果关键字能够被界定为简单字符串, 那么在某些情形下, 借助关键字参数去指定键值对这一举动会显得更为便利。

{'sape': 4139, 'guido': 4127, 'jack': 4098}

1.2 dict的“增”

于dict之中放置数据的办法, 在初始化给定之外, 能够借由key径直放置进去:

>>> d = {} >>> d 'Adam' = 67 >>> d 'Adam' 67 1.3 dict的“删”

需删除一个键, 采用pop(键)方法, 此函数返回值是该键对应的取值, 与之对应的取值会自字典中被删除。

创建一个字典d, 其中键为空字符串时对应的值是95, 键为Bob时对应的值是75, 键为Tracy时对应的值是85。

>>> d.pop('Bob')

75

>>> d

以冒号为界, 前面的空字符串对应的值是95, 名为Tracy的值是85。

也可以用del 来删除一个键值对。

>>> d = {'': 95, 'Bob': 75, 'Tracy': 85}

>>> del d

'Bob'

>>> d

{'': 95, 'Tracy': 85}

1.4 dict的“改”

可以通过key获取其value直接对其进行赋值

>>> d = {'': 95, 'Bob': 75, 'Tracy': 85}

>>> d

'Bob'

= 70

>>> d

存在这样一组数据 , 其中“”对应的值是九十四 , “Bob”对应的值是七十 , “Tracy”对应的值是八十五。

1.5 dict的“查”

查询时若key不存在

:直接通过d

‘’

会出现在运用这种方式去获取与该key相对应的value时发生报错的情况, 如果要防止出现key不存在的那种错误, 存在着两种办法。

一是通过in判断key是否存在:

>>> '' in d

False

二是借由dict所提供的get()方法, 要是key不存在, 能够返回None, 或者返回自己指定的value。

>>> d.get('')

>>> d.get('', -1)

-1

注意:返回None的时候的交互环境不显示结果

查询key,value

含有键为'name',其对应的值为'chen'的字典, 同时含有键为'age',其对应的值为25的字典, 并且还含有键为'loc',其对应的值为空字符串的字典。

键值对集合中, 字典的键的集合获取方法返回的结果, 是对象, 并非列表, 字典的值的集合获取方法所得内容, 同样如是标点。

# 以列表的形式返回key

list(dic.keys())

# 以列表的形式返回value

list(dic.())

# 循环key

for key in dic:

print(key)

# 循环key

for key in dic.keys():

print(key)

循环那个value, 运用value()方法能够把所有的value给取出来。

for value in dic.():PDd.HoUniAoHaO.CoM/tag/1241

print(value)

在以字典为范畴进行循环操作之际, 借助 items() 方法能够把里面含有的关键字以及与之相对应的值一起提取出来。

对于字典中的键, 以及与该键对应的值, 在字典的项中进行遍历。

print(key, value)

2.dict是无序的

需要注意的是, 对于dict的迭代, 由于dict的存储并非按照list的那种方式进行顺序排列, 所以, 迭代出来的结果顺序十分有可能是不一样的。(dict的标准规定)。

不保证

有顺序,要保证有顺序的请用)

from

d = ()

要是你想探讨有关dict无序该问题, 那下面这篇可以看看, 要是你想深入研究, 建议去看一下源码, 博主在这个地方未曾进行过深入探究。

3.其他

需要牢记的第一条就是dict的key必须是不可变对象

这是由于dict是依据key去算value的存储所处位置的, 要是每一次算出相同的key而所得结果不一样, 那么dict的内部就会彻底陷入混乱状态。这个借助key来计算位置所用的算法被称作哈希算法(Hash)。

在其中, 字符串、整数等均是不可变的状态, 所以, 能够安心当作key。要是一个元组仅仅含有字符串、数字或者元组, 那么此元组也能够被用作关键字。然而要是元组直接或者间接含有可变对象, 那么它就不可以被用作关键字。列表无法被用作关键字, 是因为列表能够借助索引、切片或者诸如() 和() 这类方法来产生改变。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 3:40:19

ClaudeAPI 医疗场景落地指南:适用边界、提示词与审核流程

医疗行业引入大模型,难点其实不只是“它能不能回答医学问题”。更关键的是:哪些工作可以让 AI 帮忙,哪些内容必须由人来复核,以及怎样防止模型一本正经地“编”出内容,最后流入真实临床流程。如果团队打算基于 Claude …

作者头像 李华
网站建设 2026/7/4 3:39:51

7B 还是 14B,Strix Halo 上大模型参数量选择实测

告别显存焦虑:Strix Halo 上的大模型参数量实测 最近拿到一台搭载 AMD Strix Halo 架构的工程机,第一反应不是去跑 3A 大作,而是迫不及待地想看看它在本地大模型推理上的表现。以前在普通轻薄本上跑 LLM,总是要在“显存爆掉”和“…

作者头像 李华
网站建设 2026/7/4 3:37:45

电子合同选型7大盲区,企业必看避坑指南

前言:一个被低估的决策风险 某中型制造企业为压缩行政成本,选择了一家报价低廉的小型电子合同服务商,完成了数百份员工劳动合同的签署。一年后,该平台因经营不善停止服务,企业无法导出任何已签署的合同数据&#xff0c…

作者头像 李华
网站建设 2026/7/4 3:36:10

Uniapp+Vue3旅游小程序项目实战|个人完整学习总结

本文结合完整旅游App实战项目,汇总Uniapp通用基础知识点、开发环境配置、项目搭建、接口封装、页面开发、多端适配全套内容,零基础可直接上手,适配微信小程序、H5、App多端开发,完整复刻实战项目开发流程。 项目实战视频来源&…

作者头像 李华
网站建设 2026/7/4 3:36:10

FastAPI 后台任务:BackgroundTasks 的使用场景与注意事项

FastAPI里的后台任务就是那个贴心的服务员。它把你指定的耗时操作,比如:📌 发送注册邮件 📌 写操作日志、审计记录 📌 更新缓存、清理临时文件 📌 给第三方推送通知……统统扔到返回响应之后再去执行。关键…

作者头像 李华
网站建设 2026/7/4 3:35:21

AI正在改写订阅制应用:2026年,混合变现将成为默认模式

过去十年,订阅制一直是非游戏类应用最重要的商业模式之一。无论是工具、效率、学习、健康,还是内容类产品,只要用户愿意持续付费,开发者就可以获得稳定的经常性收入。但进入AI时代后,这套模式正在发生变化。过去那种“…

作者头像 李华