百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Python3 自学第7天:字典dict(python 中字典)

toyiye 2024-08-27 22:00 5 浏览 0 评论

前面我们了解了列表list和元组tuple两个序列,是存储不同类型数据的容器。

对列表和元组不清楚的朋友可以了解下这两篇文章:

Python3 自学第5天:列表list

Python3 自学第6天:元组tuple

今天我们了解下另外一种容器类型:字典dict它可以存储任意类型的对象

字典dict定义,它里面的元素是“健值对”形式,包裹在花括号{ }里面,用冒号(:)将键key与值value隔开;“键值对”之间用逗号(,)分开,也就是元素之间用逗号(,)分开,这点和list,tuple是一样的。

key与value 之间是一种映射关系,格式如下:

创建字典,实例代码:

字典键key的两个特性:

1)键key在字典里是唯一的,不允许同一个键Key出现两次。

2)键key的类型必须是不可变的,如数字,字符串,元组等;

键key对应的值value可以是任何数据类型。

我们可以通过setdefault()方法为value设置默认值,如:

dict_org.setdefault('sex', 'man')

如何获取字典dict的值,实例代码:

注意了,访问元素时如果key不存在会报KeyError异常。

用dict.get(key)方法获取指定键key的值value,实例代码如下:

注意:如果指定的键key不存在(比如上面的'sex')是需要指定一个默认值的,否则会报错的。如果键key存在,值不存在,返回默认值。

如何来更新字典呢,实例代码:

注意上面的'tel',它是一个不存在的键key,通过 = 赋值后会作为新元素被添加到字典里面;

如果这个'tel'键key已经存在,通过 = 赋值后只会做修改操作。

总结一下:用 = 赋值时,key存在就修改,不存在就添加;

我们也可以用dict.update()方法来更新字典dict,实例代码:

我们发现两个字典里都有一个同名键'year',update()方法会去重,再把dict2里的内容更新到dict1里,以确保字典里的键key是唯一的。

如何来删除字典对象及呢,实例代码:

dict.pop(key)会返回被删除的值,同时字典本身也变更了;

如果删除一个不存在的key,是要指定默认值key的,否则会报错,如:dict_org.pop('tel','phone')

还可以用我们熟悉的del语句删除元素和字典对象,实例代码:

注意:del语句可以删除字典里的单个元素,dict.clear()方法是清空字典dict里面的所有元素。

注意:del语句可以删除整个字典对象,删除以后dict_org字典对象就不存在了,再访问就会报错。

类型转换 str(dict),实例代码:

判断键key是否存,用 in 或 not in 操作符,实例代码:

常用的几个字典方法

其实前面已经用过一些字典方法了,下面再补充几个:

dict.items()返回一个可迭代对象,它把k:v健值对转换成元组存为列表的元素,其结果类似“列表嵌套元组”,实例代码:

我们可以通过遍历items()把字典dict编排成一个新列表list,相当于list(dict)方法的实现过程,代码如下:

提取字典里的所有键:keys() 方法返回一个可迭代对象,相当于字典的key集合,可以使用 list() 来转换为列表,实例代码:

提取字典里的所有值:values() 方法返回一个可迭代对象,相当于字典的value集合,可以使用 list() 来转换为列表,实例代码:

创建字典,dict.fromkeys(seq,v),将seq中的元素做为字典元素的key。

下面重点说下字典的浅拷贝和深拷贝,以及与直接赋值的区别;

直接赋值:其实就是对象的引用(对象的一个标签名,别名而已)。

浅拷贝(dict.copy()):拷贝父对象,不会拷贝对象的内部的子对象。

深拷贝(copy.deepcopy()): 它是copy模块的deepcopy方法,完全拷贝了父对象及其子对象。

先来看下直接赋值和浅拷贝:

我们再看看深拷贝,需要导入copy模块:

总节一下:

用等号 = 是赋值引用,a,b其实是同一条引用,这个引用又指向了对象obj

浅拷贝后虽然dict_a,dict_b是两个独立对象,即两个引用,这两个引用又指向同一个对象obj。只要更新其中一个,另外一个也会跟更新。

深拷贝后dict_a,dict_b是两个完全独立对象,它俩完全拷贝了父对象及其子对象;也就是说每个引用不再指向同一个对象,而是各自有了独立的指向对象,所以深拷贝后修改字典是互不影响的。

copy模块也有个浅拷贝方法copy.copy(obj),大家可以自己试下;copy模块针对的所有python对象的拷贝;

总结一下: 等号=赋值和浅拷贝后,指向没变;深拷贝后,指向独立了。

OK!Python数据类型的字典dict就分享到这里,如果您有什么问题,请在评论区留言,我会及时回复,感谢!

【极客干货】从事IT行业十余年,在移动互联网开发,J2EE企业级开发,IOT物联网,AI人工智能等方面有点技术积累,熟练使用C/C++,Java,Python等编程语言。从2009年开始接触Python,后续借空闲时间将个人熟悉的技术干货系统性分享给大家,也许我的分享会让你少走一些弯路,如果您觉得还可以,请多多关注,评论和转发,非常感谢!

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码