首先,什么是sequence(序列)操作?
- 字符串的特性被称为sequence(序列)
H | o | w | a | r | e | y | o | u | ? |
就好像存储在一个个连续的单元格里面,每个单元格存储一个字符,每个字符就是一个元素;一个字符串,由若干个元素组成;
一列排下去,每个元素顺序存储在里面的,符合这种存储特性的,就是sequence;
sequence支持相同的操作
- 位置索引 Index
- 标记每个元素的位置
- 用来获取元素
- 从左到右,从0开始
- 可以用正数表示,也可以用负数表示:最后一个元素也可以是a[-1]
- 长度为n的字符串a,最后一个元素是a[n-1]
-
- 索引也可以是表达式
-
- 越界
- 切片操作
- 截取(slice)字符串的一部分内容
- 和索引一样切片的操作符是 []
- 参数有两个,用:隔开
- string[begin:end] 从begin开始,到end结束,但是不包含end
- string[begin:] 从begin开始,到字符串结束
- string[:end] 从第一个字符开始,到end位置结束,但是不包含end
- 截取(slice)字符串的一部分内容
- 用正数下标,还是用负数下标
根据情况来定
- 获取字符串长度 len()
列表 list
- 字符串 是一种sequence类型
- 由一个个元素组成
- 每一个元素是一个字符
- 列表 也是一种sequence类型
- 可以存储任何类型的数据,每个元素可以是任意类型
- 列表元素获取(index)与切片(slice)操作
-
包含列表的列表--元素获取
-
-
- 获取列表中列表的元素
-
-
切片--产生新对象,原来的对象不变
-
- list是一个可变的有序表,所以,可以往list中追加元素到末尾( append() ):
- 把元素插入( insert ( index,元素值 ) )到指定的位置,比如索引号为2的位置:
- 删除list末尾的元素,用
pop()
方法:
- 删除指定位置的元素,用
pop(i)
方法:
元组 tuple
- 元组 也是一种sequence类型
- 元组 和 List 很相似,只有一个最大的不同--元组不能改变其组成元素( 元组是不可变的 )
- 元组的创建和定义
#4个元素
#另一种定义方式
#单个元素元组,只有一个元素的时候也会在元素后面写一个,逗号:以免误解为数学意义上的括号
#单个元素元组
#空元组
#空元组
- 看一个“可变的”tuple:
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!