python内置数据结构性能分析

Posted 外部存储设备

tags:

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

List

  1. 列表是一个类似数组的结构
  2. 对某个索引位置的获取和赋值的时间复杂度是O(1)
  3. 在列表末尾添加或删除一个元素的时间复杂度是O(1)
  4. 但是在列表除末尾之外的位置添加或删除一个元素的时间复杂度是O(n)。这是因为,在选定位置之后的元素需要被整体前移或后移
  5. 列表搜索的时间复杂度是O(n),因为列表搜索是靠遍历元素完成的
  6. 列表的extend时间复杂度是O(k),相当于在列表末尾插入k个元素
  7. 列表的sort函数内部实现机制为timesort,时间复杂度为O(nlogn),空间复杂度为O(n),是一种稳定的排序方法

Dict

  1. 字典的底层实现是哈希表
  2. 字典是无序的,但可以使用collections.OrderedDict()实现有序字典。OrderedDict的实现原理是哈希表+双链表
  3. 字典的增删改查都是O(1)的时间复杂度

Set

  1. 集合的底层实现是哈希表
  2. 集合的增删改查与字典一样,都是O(1)的时间复杂度

collections.deque

  1. 双向队列的底层实现是双链表
  2. 一种对列表的改进:在头尾的增删都是O(1)的时间复杂度
  3. 但是在队列中的增删仍是O(n)的时间复杂度
  4. 查找也是O(n)的时间复杂度

参考资料

https://runestone.academy/runestone/books/published/pythonds/AlgorithmAnalysis/Lists.html

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

python内置数据类型列表list和字典dict的性能

内置降维聚类等算法,时间序列数据分析Python库Deeptime

Python内置类型性能分析

利用Python进行数据分析

利用Python进行数据分析

大佬来支招了 5道Python数据分析面试题