目录
3.1 索引
3.2 分片
3.3 序列相加
3.4 序列相乘
3.5 成员资格
3.6 长度、最小值、最大值
序列(Sequence)是⼀个包含其他对象的有序集合,序列中的元素包含了⼀个从左到右的顺序,可以根据元素所在的位置进⾏存储和读取。 Python 中内建了 6 种序列,分别是列表、元组、字符串、 unicode 字符串、 buffer 对象和 xrange 对象。序列作为 Python 的数据结构,有⼀些操作是通⽤的,如:索引、分⽚、加、乘以及检查某个成员是否属于序列的成员(成员资格),另外,还有⼀些计算长度、找到最⼤元素等等的内建函数。
序列中的所有元素都有编号,从 0 开始,可以按照编号来访问序列中的元素,这个标号就是索引 (indexing)。
se = 'Hello'
print(se[0])
print(se[-1])
se[0] 表⽰序列 se 中的第⼀个元素, se[-1] 表⽰序列中的最后⼀个元素。
分⽚(Slicing)操作指的是访问序列中⼀定范围之内的元素。分⽚通过冒号相隔的两个索引来实现,第⼀个索引是需要提取部分的第 1 个元素的编号,⽽第⼆个索引是分⽚之后剩下部分的第 1 个元素的编号,第⼆个索引不包含在分⽚之中:
se = 'Hello Pythoner ! '
print(se[0:5])
上述代码将打印出‘Hello’字符串。但有时,我们需要获取序列的后⾯⼏个元素,
同时,序列的⼤⼩是未知的,我们可以这样写:
se = 'Hello Pythoner ! '
print(se[-9:])
se[-9:]中空了第2个索引,表⽰⼀直到最后⼀个元素。上述代码将打印出‘Pythoner!’字符串。
进⾏分⽚时,分⽚的开始和结束点需要指定。⽽另外⼀个参数步长(step length)
通常默认为 1,当有必要时,可是指定切⽚的步长,如每隔 1 个元素就取出元素:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[0:10:2])
print(numbers[1::2])
上述代码将打印出‘[1, 3, 5, 7, 9]’和‘[2, 4, 6, 8, 10]’,其中的步长都是 2。当然步长也可以设置为负值,这样分⽚会从后往前进⾏。
可以通过加号能对两个相同类型的序列进⾏连接运算,如字符串:
hello = '你 好'
name = 'yangjh'
print(hello + name)
上述代码将打印出‘你好 yangjh’字符串。
序列乘以数字,表⽰将原有序列重复若⼲次:
hello = '你 好'
print(hello * 3)
上述代码将打印出‘你好你好你好’字符串。空列表可以使⽤‘[]’来表⽰,但是,如果想创建有 10 个空元素组成的列表,就需要使⽤ None, None 是 Python 内建的⼀个值,表⽰什么都没有,因此,要创建含有10 个空元素的列表,就可以这样:
print([None] * 10)
使⽤ in 运算符,可以检查某个元素是否存在与指定的序列中。如果元素存在于序列中,则返回 True,否则返回 False。
print('张 三' in ['张 三', '李 四', '王 二'])
上述代码将打印出布尔值 True。
使用 dir() 函数输出对象的内置方法
dir() 函数可以输出对象的内置⽅法。如: dir(’str’) 就可以打印出所有字符串对象的内置⽅法
内建函数 len() 可以返回序列的⼤⼩,如:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(len(numbers))
print(max(numbers))
print(min(numbers))
上述代码将打印出 numbers 序列的长度‘10’和最⼤值以及最⼩值。