Python内置数据结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python内置数据结构相关的知识,希望对你有一定的参考价值。

内置数据结构

  • 可变
    1. list 列表
    2. byterray
    3. dict 字典
    4. set 集合
  • 不可变
    1. tuple 元组
    2. bytes
    3. 常量(int,str,bool 等)

list 列表 (推荐使用索引)
列表相当于一个排列整齐的队列,可以理解为在内存中是一片排列整齐的连续的空间,它是可索引,可变的,有序的,线性结构,可迭代
优点:
通过索引(index)查找、替换元素 效率高 时间复杂度O(1)。
尾部追加(append)与 尾部移除(pop)元素快 效率高 时间复杂度O(1)。
缺点:
从中间增加或移除元素会使列表元素整体挪动 效率低。
因为是连续空间1,如果一次开辟空间较大,内存连续空间不够时,会触发GC进行垃圾回收。

tuple 元组(推荐使用索引)
元组在内存中可以理解为与列表相似 , 他是可索引的,不可变的,有序的,线性结构,可迭代
优点:
通过索引查找元素 时间复杂度为O(1)。
缺点:
元组是不可变的,是只读的,不能修改。

set 集合
set在内存中是散落的,不连续的,不可索引 ,他是 去重的 可变的 无序的 可迭代 可hash
优点:
通过数值查询元素是否在集合中(使用hash) 时间复杂度O(1)。
增加元素(add)时间复杂度O(1)
可以使用集合运算(并集 | 、交集 & 、对称差集 ^ ,还可用 < , > 判断子集 超集)。
缺点:
不能使用索引,不能放置内容相同的元素,不能放不可hash的元素(list,set,dity)。

dity 字典
dity在内存中是散落的,不连续的,会预留散列空间 。 无序的 可变的 可迭代 key是去重的、可hash
优点:
通过数值查询快(使用hash) 时间复杂度O(1)。
增加kv对 时间复杂度O(1)。
移除kv对(pop) 时间复杂度O(1)。
缺点:
不能使用索引,不能放置内容相同的元素,不能放不可hash的元素(list,set,dity)。
相对于list来说,内存占用较大。

以上是关于Python内置数据结构的主要内容,如果未能解决你的问题,请参考以下文章

Python内置数据结构

Python中内置的数据结构都有啥?

python数据类型之内置方法

python的四种内置数据结构

Python06python内置数据结构1

python内置的sqlite3模块,使用其内置数据库