pythonlist链表_Python 链表(List)

List 存储的是一组有序序列的值。

内存分配方式:

类似于C++中vector,首先分配一段空间,当分配空间使用完后,将重新开辟一块更大的空间,将原有数据拷贝到新开辟的空间后,释放原有空间。

List 存储方式:

每一个存储单元(每一个元素)存储的是值得引用地址,所以可以存储任意类型。

2058663-20200822155144229-1375058524.png

性能特点:

(1)由于采用动态数组方式存储,存储空间永远大于实际存储得元素,占用空间相对tupple或者array多。

(2)由于存储得是值域得引用,故每次读写先根据下标找到值域的地址,在进行数据的访问,读写速度相比array慢。

特性:

(1)可动态修改

(2)支持切片操作

(3)支持算数运算(+, *)

(4)支持范围运算(in, not in)

(5)可循环迭代

(6)当链表为空时,if判断为False,非空为True

定义方式:

L = [] # 定义一个空链表

L = [1, 2, 3] # 定义一个链表并初始化数据

算数运算:

(1)切片操作:

x = [1, 2, 3, 4]

print x[1] # 下标为1的元素值 --> 2

print x[1:3] # 从下标为1开始,到下标为3(不包含)的序列 --> [2, 3]

print x[1:-1] # 从下标为1开始,到倒数第一个(不包含)的序列 --> [2, 3]

print x[1:] # 下标为1后面的所有元素 --> [2, 3, 4]

print x[:-1] # 从投开始到倒数第一个的序列 -->[1, 2, 3]

(2)算数运算

如果链表当前存储空间在相加或者相乘后仍然足够存储追加的元素,则之间追加到当前空间,否则按照(内存分配方式)进行分配。

x = [1, 2]

print id(x) # 地址:45830280

x += [3, 4] # x = [1, 2, 3, 4]

print id(x) # 地址:45830280

x = [1, 2] * 2 # 2次叠加-->[1, 2, 1, 2]

(3)范围运算

if 5 in [1, 2, 3]:

# TODO

pass

if 5 not in [1, 2, 3]:

# TODO

pass

方法列表:

2058663-20200822170518212-2097909044.png

对象方法:

2058663-20200822170135375-1839743427.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值