数据结构:列表(一)
一、数组和列表的区别
区别一:
数组中存放的数据类型必须一致,可以存放基本类型数据
list中可以存放不同类型数据,但不能存放基本类型数据
区别二:
数组不能删除制定位置元素,除非重建数组对象
list移除某一元素后,后续元素会前移
区别三:
数组初始化后大小固定,且数据都已经被赋值
列表长度是根据内容的多少而改变的
二、python中深浅复制的区别
Python的数据结构总体分为两类:一类:字符串和数字,另外一类:列表、元组、字典等
1、浅拷贝
浅拷贝,在内存中只额外创建第一层数据
|
1
2
3
4
5
|
import copy n1 = {"k1": "luo", "k2": 123, "k3": ["jia", 456]} n3 = copy.copy(n1) |

2、深拷贝
深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)
|
1
2
3
4
5
|
import copy n1 = {"k1": "luo", "k2": 123, "k3": ["jia", 456]} n4 = copy.deepcopy(n1) |

三、列表提供了哪些基本的操作,这些操作的复杂度是多少
1、列表提供了哪些基本的操作
2、这些操作的时间复杂度是多少
| Operation | Big-O Efficiency |
|---|---|
| index [] | O(1) |
| index assignment | O(1) |
| append | O(1) |
| pop() | O(1) |
| pop(i) | O(n) |
| insert(i,item) | O(n) |
| del operator | O(n) |
| iteration | O(n) |
| contains (in) | O(n) |
| get slice [x:y] | O(k) |
| del slice | O(n) |
| set slice | O(n+k) |
| reverse | O(n) |
| concatenate | O(k) |
| sort | O(n log n) |
| multiply | O(nk) |
作者:罗阿红
出处:http://www.cnblogs.com/luoahong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。


浙公网安备 33010602011771号