Python中最基本的数据结构是序列(sequence)。序列中的每个元素都有编号,也叫位置或索引。
2.1 序列概述
Python中内置了多种序列。最常见的两种:列表和元组,字符串也属于序列的一种。
列表和元组的区别在于列表是可以修改的,而元素不可以修改。元组使用小括号,列表使用方括号。需要注意的是序列中的元素可以是不同类型的元素(整型、浮点、字符串、数组等)
edward = ['Edward Goff',43]
john = ['John Wall',34]
database = [edward,john]
2.2 通用的序列操作
有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。
2.2.1 索引
序列中的所有元素都有编号——从0开始递增。你可像下面这样使用编号来访问各个元素:
greeting = 'Hello'
greeting[0]
这称为索引(indexing)。你可使用索引来获取元素。上面的例子将会输出H。因为0是第一个位置的索引。
2.2.2 切片
除使用索引来访问单个元素外,还可使用切片(slicing)来访问特定范围内的元素。为此, 可使用两个索引,并用冒号分隔:
tag = '<a href="http://www.python.org">Python web site</a>'
tag[9:30]
# 'http://www.python.org'
切片适合选取序列中的一部分,其中的编号非常重要:
第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号
numbers = [0,1,2,3,4,5,6,7,8,9]
numbers[3:6]
# [3,4,5]
tips:
1.可以使用负数索引,如果切片结束于序列末尾,可省略第二个索引。如果切片始于序列开头,可省略第一个索引。
numbers[-3:-1] # [7,8]
numbers[-3:] # [7,8,9]
numbers[:2] # [0,1]
2.更大步长
默认步长为1.当步长为2,表示每隔一个元素选取一个元素。步长不能为0,可以为负,表示从右到左选取元素。
numbers[1:9:2]
# [1:3:5:7]
numbers[9:1:-2]
# [9, 7, 5, 3]
2.2.3 序列相加
可使用加法运算符来拼接序列。
[1,2