数据结构:列表(一)
一、数组和列表的区别
区别一:
数组中存放的数据类型必须一致,可以存放基本类型数据
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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。