python原生代码中的列表,元组和数组的区别,一个表格搞明白

经常搞混,以备后用。

在 Python 原生代码里,数组一般是指由 array 模块创建的数组,下面以表格形式呈现列表、元组和 array 模块数组的区别:

在 Python 原生代码里,数组一般是指由 array 模块创建的数组,下面以表格形式呈现列表、元组和 array 模块数组的区别:

对比维度

列表(list)

元组(tuple)

数组(array.array

定义语法

使用方括号 [] 定义,元素间用逗号分隔。
示例:my_list = [1, 2, 3]

使用圆括号 () 定义,元素间用逗号分隔,括号有时可省略。
示例:my_tuple = (1, 2, 3)my_tuple = 1, 2, 3

需要导入 array 模块,使用 array() 函数创建,需指定元素类型码。
示例:import array; my_array = array.array('i', [1, 2, 3])

可变性

可变对象,可以对元素进行修改、删除、添加操作。
示例:my_list = [1, 2, 3]; my_list[0] = 10

不可变对象,创建后元素不能修改、删除、添加,修改会引发 TypeError
示例:my_tuple = (1, 2, 3); my_tuple[0] = 10 # 会报错

可变对象,可修改、删除、添加元素。
示例:import array; my_array = array.array('i', [1, 2, 3]); my_array[0] = 10

元素类型

可以存储任意类型元素,允许不同类型元素混合。
示例:my_list = [1, 'a', True]

可以存储任意类型元素,允许不同类型元素混合。
示例:my_tuple = (1, 'a', True)

所有元素必须是相同类型,创建时通过类型码指定,不允许不同类型混合。
示例:import array; my_array = array.array('i', [1, 2, 3]) # 'i' 表示整数类型

内存占用与性能

由于要存储元素类型信息且内存动态分配,对于大量同类型数据,内存占用大,操作性能相对低。

不可变特性使其创建和访问速度快,内存占用相对少。

存储同类型数据时,内存使用效率高,操作性能比列表好,但比 numpy 数组稍差。

使用场景

适用于元素数量和值需动态变化、存储不同类型数据的场景,如数据收集。

适合存储固定数据集合,如函数多值返回、作为字典键。

用于处理大量同类型数据,且对性能有一定要求,但无需复杂数学运算的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值