python之内置数据类型
[TOC]
列表
存储结构
在Python中,列表(List)是一种动态数组。
列表的存储结构是基于数组实现的,每个元素在内存中都是连续存储的。
当创建一个列表时,Python会为其分配一块连续的内存空间来存储元素,列表的长度可以根据需要动态增长或缩小,如果该列表没有连续的内存空间剩余,则会在内存其他空闲位置重写开辟一块内存,并深复制到其中。
还会分配另外一块内存空间来存储索引数组。索引数组中的每个元素对应着相应元素在列表内存空间中的位置。
时间复杂度
在列表末尾调用pop时,操作是常数阶的,在列表头一个元素或中间某处调用pop时,则是n阶的
切片
列表切片是通过创建一个新的列表对象,然后浅拷贝其中的元素。但列表中的元素仍然是原始列表中元素的引用。修改切片后的列表元素也会影响到原始列表的对应位置元素,因为它们指向的是同一个内存地址。这意味着对于带嵌套的列表,其中的复合对象无法做到数据隔离。
1 | # 切片(浅拷贝) |
列表可以通过copy方法实现深拷贝,它能逐层拷贝列表,实现数据隔离。
1 | original_list = [1, 2, 3, 4, 5] |
字典
存储结构
字典(Dictionary)是一种无序的键值对集合,它的存储结构是基于哈希表(Hash Table)实现的
哈希表是一种高效的数据结构,它通过将键(Key)映射到一个唯一的索引位置来实现快速的查找和插入操作。在字典中,每个键都必须是唯一的,而值(Value)可以是任意类型的对象。
当创建一个字典时,Python会为其分配一块内存空间来存储键值对。字典的长度可以根据需要动态增长或缩小,这使得字典非常灵活。
- 时间复杂度
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一个正常的人!
评论