python tuple和list区别

本文深入解析了Python中list和tuple两种数据结构的区别。list是一种动态的、可变的数据结构,支持元素的添加和删除;而tuple是静态的、不可变的数据结构,初始化后无法修改。文章还探讨了tuple中可变对象的引用问题,以及tuple和list在内存管理上的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明
  1. listtuple是一种有序的集合
  2. list可以随意添加和删除元素,tuple一旦初始化就不能修改
  3. 对于tuple, 如果对象包含对其他对象的引用,则这些其他对象可能是可变的并且可能会被修改; 但是,由不可变对象直接引用的对象集合不能更改
  4. tuple是静态的固定大小的,而list是动态分配存储空间,自动扩容的
a_tuple = ("apple", "pear", "banana")
b_tuple = ([1, 2], [3, 4], [5, 6])

a_tuple[1] = 'purpose'
>TypeError: 'tuple' object does not support item assignment
 '''
 tuple 对象不能修改
 '''
a_tuple = ("apple", "pear", "banana")
b_tuple = ([1, 2], [3, 4], [5, 6])

b_tuple[1].append(7)
print(b_tuple)
> ([1, 2], [3, 4, 7], [5, 6])
'''
tuple 对象里面包含的是可变对象list, 里面的可变对象值,可以更改
'''
b_tuple = ([1, 2], [3, 4], [5, 6])

try:
    b_tuple[1] += [8, 9]
except Exception as e:
    print(e)

print(b_tuple[1])
>'tuple' object does not support item assignment
>[3, 4, 8, 9]
'''
+= 并不是原子操作, 而是 extend 和 = 两个动作, 这里 = 操作虽然会抛出异常, 但 extend 操作已经修改成功了
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值