目录
第三章 序列
序列是一种数据存储方式,是存放多个值的连续的内存空间,序列中存储的是对象的地址,而不是对象的值。
字符串
列表
字符串和列表都是序列类型,字符串是字符序列,列表是任何元素的序列。列表大小可变,可以增加或者减少。
列表操作
列表对象的创建
- []创建
>>>a=[10,20,'abc']
>>>a=[] 空列表对象
- list()创建
使用list()可以将任何迭代的数据转化成列表
>>>a=list() #创建一个空列表
>>>a=list(range(10))
>>>a
[0,1,2,3,4,5,6,7,8,9]
>>>a=list("abc")
>>>a
['a','b','c']
- range()创建整数列表
range(start,end,step)
start参数:可选,表示起始数字,默认0
end参数:必选,表示结尾数字,包头不包尾
step参数:可选,表示步长,默认1
>>>list(range(3,0,-1))
[3,2,1]
>>>a=[x*2 for x in range(5)] #加入for循环语句
[0,2,4,6,8]
>>>a=[x*2 for x in range(50) if x%9==0 ] #加入if过滤语句
[0,18,36,54,72,90]
列表元素的增加和删除
尽量在列表尾部添加和删除,提高效率
- append():是在原地址操作,真正在列表尾部添加元素,推荐使用
- +运算符:创建新地址
- extend():在原地址操作,是在列表尾部添加目标列表的所有元素,而append是添加单个元素
- insert():可以在任意位置添加元素,但是插入元素会造成大量元素移动,不推荐
>>>a=[10,20,30]
>>>a.insert(2,100)
>>>a
[10,20,100,30]
- 乘法扩展:会生成一个新列表,同时还适用于字符串和元组
>>>a=['abc',1]
>>>b=a*2
>>>b
['abc',1,'abc',1]
列表元素删除
- del删除
>>>a=[100,200,888,300.400]
>>>del a[2]
>>>a
[100,200,300,400]
元素中间添加和删除都会附带后面元素的拷贝操作
- pop():删除并返回指定位置元素,默认对最后一个元素操作
- remove():删除首次出现的指定元素,没有该元素则报错
列表元素的访问和计数
- 通过索引访问,a[1]=10 超过索引范围会报错
- index():获得指定元素在列表中首次出现的索引(位置) 语法:index(value,start,end) 起始终止位置可有可无
>>>a=[10,20,30,40,20,50,60]
>>>a.index(20)
1
>>>a.index(20,3) #索引从3位置开始的第一个20的索引位置
- count()获得指定元素在列表中出现次数
- 成员资格判断: >>>20 in a
True
>>>100 not in a
True
切片操作
(start,end,step) 三个值都可省,最简就是[:] 包头不包尾
[-3:] 从倒数第三个数开始
步长是负数,从右往左
起始终止位置数值可超出范围,起始默认为0,终止默认为end-1
注意:如果终止不写,默认取到最后一个元素,但是如果终止值超过end-1,默认为end-1,根据包头不包尾的规则,最后一个元素是取不到的。
列表的遍历
>>>a=[10,20,30]
>>>for x in a:
print(x)
10
20
30
列表排序
- 修改原列表,不建新列表
>>>a=[2,1,3,4]
>