与C、Java只能定义固定类型的数组不同,Python的数据类型主要包括元组tuple、列表list、字典key等,在使用时会更简单便利,但也会让人思考这种数据类型是如何实现的?
实际上Python内置也有一个array模块,只是平时基本不会用。Python的array类型内存连续、存储的也是同一类型的数据结构。但最常用的还是list和numpy.array。list长度可变、类型可变,且有很多固定方法。可以通过阅读CPython中的源码了解其具体实现。
CPython源码阅读指导:zhuanlan.zhihu.com/p/79656976
list常见方法时间复杂度总结
| 操作 | 平均时间复杂度 |
|---|---|
| list[index] | O(1) |
| list.append | O(1) |
| list.insert | O(n) |
| list.pop(index), default last element | O(1) |
| list.remove | O(n) |