欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-14 12:02:48
学一门语言,可以用对比其他语言方法加深对这门语言特点的理解。 一、定义:列表和元组,都是一个可以放置任意数据类型的有序集合。 mutable的列表:动态的,可以改变元素 immutable的元组:静态的,不可以改变元素 二、支持负数索引,支持切片,支持嵌套 切片操作: 接着比较下list 与 tup ......

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

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

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