Python序列之list和tuple常用方法以及注意事项
程序员文章站
2023-11-16 12:34:04
sequence 序列
sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。
我们之前所说的基本数据类型,都可以作为序列的...
sequence 序列
sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。
我们之前所说的基本数据类型,都可以作为序列的对象。对象还可以是另一个序列。序列有两种:list (表) 和 tuple(元组) 。
list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。
list
获得list元素的个数:
复制代码 代码如下:
>>> lst=['更新慢','python',5.44,false]
>>> len(lst)
4
引用访问时索引是从0开始,注意不要越界:
复制代码 代码如下:
>>> lst[0]
'更新慢'
>>> lst[1]
'python'
>>> lst[2]
5.44
>>> lst[3]
false
>>> lst[4]
traceback (most recent call last):
file "<pyshell#30>", line 1, in <module>
lst[4]
indexerror: list index out of range
用-1做索引,直接获取最后一个元素:
复制代码 代码如下:
>>> lst[-1]
false
>>> lst[-2]
5.44
>>> lst[-3]
'python'
>>> lst[-4]
'更新慢'
>>> lst[-5]
traceback (most recent call last):
file "<pyshell#35>", line 1, in <module>
lst[-5]
indexerror: list index out of range
因为list是一个可变的有序表,所以,可以往list末尾追加元素:
复制代码 代码如下:
>>> lst.append('加我一个')
>>> lst
['更新慢', 'python', 5.44, false, '加我一个']
一次追加多个元素:
复制代码 代码如下:
>>> lst.extend(['a','b','c'])
>>> lst
['更新慢', 'python', 5.44, false, '加我一个', 'a', 'b', 'c']
要删除list末尾的元素,用pop()方法:
复制代码 代码如下:
>>> lst.pop()
'c'
>>> lst
['更新慢', 'python', 5.44, false, '加我一个', 'a', 'b']
删除指定位置的元素,用pop(i)方法,其中i是索引位置:
复制代码 代码如下:
>>> lst.pop(0)
'更新慢'
>>> lst
['python', 5.44, false, '加我一个', 'a']
list元素替换,可以直接赋值给对应的索引位置:
复制代码 代码如下:
>>> lst[-1]='100'
>>> lst
['python', 5.44, false, '加我一个', '100']
list元素也可以是另一个list,插入的那个list只算一个元素:
复制代码 代码如下:
>>> lst.append(lst1)
>>> lst
['python', 5.44, false, '加我一个', '100', ['666', 'qwer']]
>>> len(lst)
6
tuple
tuple一旦初始化就不能修改。字符串是一种特殊的元素,因此可以执行元组的相关操作。
复制代码 代码如下:
>>> str='该睡觉了,晚安!'
>>> print (str[:7])
该睡觉了,晚安
不可变的tuple意义就在于因为不可变,所以代码更安全。如果可能,能用tuple就尽量用tuple。
复制代码 代码如下:
>>> tuple=('1','2','3')
>>> tuple[0]=6
traceback (most recent call last):
file "<pyshell#62>", line 1, in <module>
tuple[0]=6
typeerror: 'tuple' object does not support item assignment
定义一个空tuple:
复制代码 代码如下:
>>> tuple1=()
>>> tuple1
()
注意,要定义一个只有1个元素的tuple:
复制代码 代码如下:
>>> tuple2=(666,)
>>> tuple2
(666,) #正确的
>>> tuple3=(666)
>>> tuple3
666 #错误的,只定义了666这个数
注意:tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
复制代码 代码如下:
>>> l=['cctv-5','hi']
>>> tuple4=('ufo','hack',l)
>>> tuple4
('ufo', 'hack', ['cctv-5', 'hi'])
>>> l[1]='我先变一下'
>>> tuple4
('ufo', 'hack', ['cctv-5', '我先变一下'])
所以尽量避免这种套用。
当日小结
掌握list和tuple的常用方法以及注意事项。