06 Python 列表 vs 元组,选对事半功倍

在 python 中列表(List)和元组(Tuple)都是序列类型,但它们在各方面有着各种的不同

一.可变性 - 最关键区别

列表(List)元组(Tuple)
可变性可变(Mutable)不可变(Immutable)
操作示例list.append(1)tuple[0] = 1 会报错

二.语法

# 列表用方括号
list_example = [1,2,3,4,"a"]

# 元组用圆括号
tuple_example = (1,2,3,4,"a")

# 单元素元组必须加逗号
single_element_tuple = (42, )  # 正确
not_a_tuple = (42)            # 实际是整数 42

三.性能差异

列表元组
创建速度较慢(需动态分配内存)更快(固定内存分配)
内存占用更大(预留扩展空间)更小(精确分配)
迭代速度基本一致基本一致

四.使用场景

列表的场景

  • 需要频繁修改数据集合(增删改)
  • 存储同类型数据(如所有数字)
  • 需要用到列表专属方法(.append(),insert(),remove()等)

元组的场景

  • 作为字典的健(因为不可变)
  • 函数返回多个值(如return (x,y)
  • 保护数据不被意外修改
  • 存储异构数据(如坐标(x,y,z)

五.方法对比

# 列表方法很多
lst = [1,2,3]
lst.append(4)       # [1,2,3,4]
lst.insert(0,0)     # [0,1,2,3,4]

# 元组只有两个方法
tpl = (1,2,3)
print(tpl.count(2))  # 1 统计元素出现次数
print(tpl.index(3))  # 2 查找元素位置

六.两者内存机制

a = [1,2,3]
b = a
b.append(4)
print(a) # [1,2,3,4] (列表是引用传递)

x = (1,2,3)
y = x
# y += (4,) 会创建新的元组,不影响原x

七.两者之间转换

lst = [1,2,3]
tpl = tuple(lst) # 列表转元组 -> (1,2,3)

tpl =("a","b","c")
lst = list(tpl) # 元组转列表 -> ['a','b','c']

总结

列表

方括号,内容可变,操作灵活,适合动态数据

元组

圆括号,内容锁定,安全高效,适合固定数据

当需要数据不可变时用元组,需要频繁修改时用列表。两者选择直接影响代码的安全性和性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web Rookie

此处应有打赏,就看兄弟你的啦.

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值