Python基础:列表(list)和元组(tuple)

 

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

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

  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核心技术与实战》专栏

 

posted @ 2019-05-16 18:30  秋官  阅读(2572)  评论(0编辑  收藏  举报