学一门语言,可以用对比其他语言方法加深对这门语言特点的理解。

一、定义:列表和元组,都是一个可以放置任意数据类型的有序集合。

mutable的列表:动态的,可以改变元素

immutable的元组:静态的,不可以改变元素

二、支持负数索引,支持切片,支持嵌套

切片操作:

list = [1, 2, 3, 4]
l[1:3] # 返回列表中索引从 1 到 2 的子列表 (不包含3)
[2, 3]

tup = (1, 2, 3, 4)
tup[1:3] # 返回元组中索引从 1 到 2 的子元组 (不包含3)
(2, 3) 

 

接着比较下list 与 tuple的存储空间与执行时间的差异。

三、存储空间差异。

tuple是静态的固定大小的,而list是动态分配存储空间,自动扩容的。

同样的元素,list要存储指向元素的指针与要存储当前长度大小,所以要比tuple占更多的存储空间。例:

l = [1, 2, 3]
l.__sizeof__()
64
tup = (1, 2, 3)
tup.__sizeof__()
48

 四、使用场景

存储数据固定不变的用tuple,如函数返回值

存储数据可变的情况用用list.

 

 

参考资料:

极客时间《Python核心技术与实战》专栏

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!