Python中元组和列表之间的差异和相似之处是什么?
列表(List)和元组(Tuple)都被称为Python中的序列数据类型。两种类型的对象都是由项组成的逗号分隔集合,项可以是不同类型的。
更多Python相关文章,请阅读:Python 教程
相似之处
可以对两种类型的对象执行连接,重复,索引和切片操作。
>>> #列表操作
>>> L1=[1,2,3]
>>> L2=[4,5,6]
>>> #连接
>>> L3=L1+L2
>>> L3
[1, 2, 3, 4, 5, 6]
>>> #重复
>>> L1*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> #索引
>>> L3[4]
5
>>> #切片
>>> L3[2:4]
[3, 4]
>>> #元组操作
>>> T1=(1,2,3)
>>> T2=(4,5,6)
>>> #连接
>>> T3=T1+T2
>>> T3
(1, 2, 3, 4, 5, 6)
>>> #重复
>>> T1*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> #索引
>>> T3[4]
5
>>> #切片
>>> T3[2:4]
(3, 4)
以下内置的函数对两种类型都适用
len() − 返回元素序列中的数量
>>> L1=[45,32,16,72,24]
>>> len(L1)
5
>>> T1=(45,32,16,72,24)
>>> len(T3)
max() − 返回具有最大值的元素。
>>> max(L1)
72
>>> max(T1)
72
min() − 返回具有最小值的元素。
>>> max(T1)
72
>>> min(L1)
16
>>> min(T1)
16
差异
列表对象是可变的。因此,可以从列表中添加,更新或删除一个项。
>>> L1=[45,32,16,72,24]
>>> L1.append(56)
>>> L1
[45, 32, 16, 72, 24, 56]
>>> L1.insert(4,10) #在第4个索引处插入10
>>> L1
[45, 32, 16, 72, 10, 24, 56]
>>> L1.remove(16)
>>> L1
[45, 32, 72, 10, 24, 56]
>>> L1[2]=100 #更新
>>> L1
[45, 32,100, 10, 24, 56]
元组是不可变对象。任何试图修改它的操作都会导致AttributeError错误。
T1.append(56)
AttributeError: 'tuple' object has no attribute 'append'
>>> T1.remove(16)
AttributeError: 'tuple' object has no attribute 'remove'
>>> T1[2]=100
TypeError: 'tuple' object does not support item assignment
极客教程