1. 概述
在Python中最基本的数据类型为序列(sequence)
序列中的每一个元素都有编号,即元素的位置或称之为索引,第一个元素的索引值为0,第二个元素的索引的值为1,以此类推
Python中的列表、元组、字符串都属于序列,其中列表是可变的(可以修改其中的元素),元组和字符串是不可变的(一旦创建内容就是固定的)
2. 通用的序列操作
2.1 索引
序列中的所有元素都有编号-----从0开始递增
>>> name = 'zhaoxuehui'
>>> name[1]
'h'
当使用负数索引值时,Python将从右至左查找元素
>>> name = 'zhaoxuehui'
>>> name[-1]
'i'
当然也无需必须将序列赋值给变量,可以直接对其进行操作
>>> 'zhao'[2]
'a'
如果函数调用返回一个序列,可以直接对其直接操作
>>> name = input("what's your name:")[1]
what's your name:zhaoxuehui
>>> name
'h'
2.2 切片
2.2.1常规切片
可以使用切片来访问特定范围内的元素,使用两个索引,并用冒号分隔
>>> name = 'zhaoxuehui'
>>> name[0 : 4]
'zhao'
>>> name[-6 : -3]
'xue'
>>> name[ : 4]
'zhao'
>>> name[-3 : ]
'hui'
>>> name[ : ]
'zhaoxuehui'
2.2.2 步长
执行切片操作的时候,会显示或隐式的指定起点或终点,但通常会省略另一个参数,即步长。在普通切片中默认步长为1,这意味着从一个元素移到下一个元素,因此切片就会包含起点和终点之间的所有元素
>>> name[0:10:1]
'zhaoxuehui'
如果步长大于1,将跳过一些元素,例如,步长为2时,将从起点和终点之间每隔一个元素提取一个元素
>>> name[0 : 10 : 2]
'zaxeu'
>>> name[3 : 6 : 3]
'o'
>>> name[ : : 3]
'zoei'
步长不能为0,否则无法向前移动,但可以为负数,即从右至左提取元素
>>> name[10 : 0 : -1]
'iuheuxoah'
>>> name[::-1]
'iuheuxoahz'
>>> name[0 : 10 : -1]
' '
>>> name[5 : : -1]
'uxoahz'
>>> name[ : 5 : -1]
'iuhe'
2.3 序列相加
可以使用加法运算符拼接相同类型的序列
>>> [1,2,3] + [4,5]
[1, 2, 3, 4, 5]
>>> 'zhao' + 'xue' + 'hui'
'zhaoxuehui'
2.4 乘法
序列与数字x相乘时,将重复这个序列x次来创建一个新序列
>>> 'zhao' * 3
'zhaozhaozhao'
>>> [1,2,3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
2.5 成员资格
检查值是否包含在序列中,可以使用运算符in,检查是否满足条件,并返回相应的值,满足时返回True,不满足时返回False
>>> name = 'zhaoxuehui'
>>> 'zhao' in name
True
>>> 'a' in ['a','b']
True