目录
- 序列
- 元组与列表
- 关系总结
- 创建元组与列表方式一
- 创建元组注意点
- 创建元组与列表方式二
- 简单使用
- 通过索引访问元素
- 子序列
- 序列加法
- 序列乘法
- in运算
了解Python序列
创建列表和元组
通过索引访问元素
子序列
序列运算
序列
所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引(也叫下标)来序列成员。
Python常见的序列包括字符串、元组和列表等。另外前面介绍的字节串(bytes)也是序列,以及本书后面介绍的namedtuple 也是序列。
元组与列表
本节介绍的序列主要是列表和元组,它们非常相似,最主要的区别在于:列表是可变的,元组是不可变的。
元组一旦构建出来,程序不能修改元组所包含的元素(就像字符串也是不可变的,程序无法修改字符串所包含的字符序列);
但列表是可变的,程序可以修改列表所包含的元素。
应用场景:
如果只是固定地保存多个数据项,不需要修改它们,此时就应该使用元组;
反之就应该使用列表。
如图:列表跟元组就如图,和 java的数组差不多。
关系总结
列表和元组的关系就是可变和不可变的关系。
如何区分列表和元组呢?很简单,构建时就可以区分:
A. 方括号是列表,圆括号是元组。
B. 列表用 list() 创建,元组用 tuple() 创建
创建元组与列表方式一
创建列表和元组的语法也有点相似,区别只是创建列表使用方括号,创建元组使用圆括号,并在括号中列出它们的元素。
创建列表:
[ele1, ele2, ele3, …]
创建元组:
(ele1, ele2, ele3, …)
创建元组注意点
由于圆括号在Python中是很普通的符号,因此如果创建只包含一个元素的元组,不能仅在圆括号中放一个元素,还必须在元素后放一个逗号
创建只包含一个元素的元组:
(ele1, )
创建元组与列表方式二
分别用 list()函数 或 tuple()函数 来构建列表或元组
本质上:其实list、tuple 是 Python 的内置类型,因此 list()、tuple() 其实是它们的构造器
简单使用
通过索引访问元素
列表和元组都可通过索引来访问元素:
一种是正向访问(从左到右),索引从0开始:第1个元素的索引为0,第2个元素索引为1,……以此类推;
一种是反向访问(从右到左),索引从-1开始:倒数第1个元素的索引为-1,倒数第2个元素的索引为-2,……以此类推。
子序列
前面介绍字符串操作类似的是,列表和元组同样也可使用索引获取中间一段,这种用法被称为slice(分片或切片)
slice的完整语法格式如下:
[start: end: step]
获取子序列就是获取序列中的某一段
还可以加步长
序列加法
列表和元组支持加法运算,加法的和就是把两个“列表或元组”所包含的元素的总和。
列表只能和列表相加;元组只能和元组相加;元组不能直接和列表相加
列表和元组相加的话,可以把元组转成列表再相加,也可以把列表转成元组再相加
序列乘法
列表和元组可以和整数执行乘法,列表和元组乘法的意义就是把它们包含的元素重复N次——N就是被乘的倍数。
可以列表、元组同时进行加法、乘法运算。
示例:日期翻译程序
序列只能和整数相乘,就是把元素重复N次
列表
元组
字符串也属于序列,因此字符串也支持与int相乘
in运算
in运算符用于判断列表或元组是否包含某个元素