python列表与字典

本文探讨了Python中不可变的数字、字符串和元组,以及可变的列表和字典。重点介绍了字符串replace方法、字典的映射特性及列表的灵活性。讲解了内存管理和数据结构的特性,如列表的可变性、字典的快速查找和对象引用原理。
摘要由CSDN通过智能技术生成

不可变性:在核心类型中,数字、字符串和元组是不可变的;列表和字典是可变的。在其他方面,这种不可变性可以用来保证在程序中保持一个对象固定不变。
字符串
replace方法
会对全局进行搜索和替换,但是不会改变原始的字符串,而是会创建一个新的字符串作为结果【字符串的不可变性
字典是一种映射(mapping),是一个其他对象的集合,但是通过键而不是通过相对位置来存粗的,它没有任何可靠的从左到右的顺序,只是简单的将键映射到值,是python核心对象集合中的唯一一种映射类型,具有可变性【可以就地改变,并可以随需求增大或减小】
字典索引操作与序列语法相同,但索引元素是键而不是相对位置
在python中,当最后一次引用对象后,这个对象所占用的内存空间将会自动清理掉:python具有一种叫垃圾收集的特性,在程序运行时可以清理不再使用的内存。

列表

列表是python中最具灵活性的有序集合对象类型,与字符串不同的是,列表可以包含任何种类的对象:数字、字符串和其他列表;同时列表都是可变对象,支持在原处修改的操作,可以通过指定的偏移值和、分片、列表方法调用、删除语句等方法来实现。属性:

任意对象的有序集合

功能上-收集其他对象,可看作数组;每一项都保持了从左到右的位置顺序【序列】

通过偏移读取

像字符串一样,可以通过列表对象的相对位置对其进行索引,由于其每一项都是有序的,也可以执行分片和合并之类的任务

可变长度、异构以及任意嵌套

可以实地增长或缩短【可变长度】,可以包含任何类型的对象【异构】,可以创建列表的子列表的子列表【任意嵌套】

属于可变序列的分类

支持在原处的修改,也可以响应所有针对字符串序列的操作【索引、分片、合并】当应用于字符串上的合并、分片等操作时返回新的列表【可变】,支持字符串不支持的其他操作【删除、索引赋值操作,原处修改列表】

对象引用数组

python列表包含了零个或多个其他对象的引用,在标准python解释器内部,列表就是C数组而不是链接结构。每当用到引用时,python总是会将这个引用指向一个对象,所以程序只需处理对象的操作,当把一个对象赋给一个数据结构元素或变量名时python总是会存储对象的引用,而不是对象的一个拷贝。

字典

如果列表是有序的对象集合,那么字典就是无序的集合。字典当中的元素是通过键来存取,而不是通过相对位置来存取的。对字典进行索引是非常快速的搜索操作。属性:

通过键而不是偏移量【相对位移】来读取

字典有时又叫做关联数组、散列表(hash)是通过键将一系列值联系起来

任意对象的无序集合

保存在字典中的项没有特定的顺序【随机排序】,以便快速查找,键提供了字典中项的象征性位置

可变长、异构、任意嵌套

可在原处增长或缩短【无需生成拷贝】,可包含任意类型的对象,支持任意深度的嵌套【可包含列表和字典】

属于可变映射类型

通过给索引赋值,字典可以在原处修改【可变】,但不支持字符串和列表中的序列操作【字典是无序集合,不支持合并、分片操作】。字典是唯一内置的映射类型

对象引用表【散列表】

如果说列表是支持位置读取的对象引用数组,那么字典就是支持键读取的无序对象引用表,其本质是作为散列表来实现的【支持快速检索的数据结构】,一开始很小,根据要求增长。Python采用最优化的散列算法来寻找键,搜索快速。和列表一样,字典存储的是对象引用【不是拷贝】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值