一.列表概念
1.概念:在Python中列表是一个对象的集合。
二.列表的创建
1.基本语法[ ]创建
例:
a=[10,20,30,"无限",'txt']
a=[] # 创建一个空列表
2.list( )创建
(1).使用list( )可以将任何可迭代的数据转化成列表。
例:
a=list("cosfirst")
b=list(range(10))
print(a)
print(b)
执行结果:
3.range( )创建
(1).range( )可很好的创建整数列表。
格式:range([start],[end],[step])
其中:start可选(默认为0),end必选,step可选(默认为1)
例:
a=list(range(0,10,1))
b=list(range(3,20,20))
c=list(range(-10,-33,-1))
print(a)
print(b)
print(c)
执行结果:
【注】:在Python3中range( )返回的是一个range对象,而不是列表,我们可以list( )方法将其转化为列表对象。
4.推导式创建(简要说明:for循环后面后重点介绍)
例1:
a = [x * 2 for x in range(5)] # 循环创建多个元素
解释:for x in range(5) 产生数:0,1,2,3,4
然后x*2在产生的数上乘2,变为:0,2,4,6,8
例2:
a=[x*2 for x in range(100) if x%9==0]
在例1的基础上增加把数扩大到0~100,并且增加输出条件要符合能整除9的数。
三.列表元素添加
1.append( )方法
(1).原地修改列表对象,在列表的尾部添加新元素(速度最快)
例:
a=[20,30,10]
a.append("txt")
print(a)
执行结果:
2.+运算符操作
(1).+运算符操作并不是真正意义的尾部添加元素,而是创建新的列表元素;将原列表元素和新列表的元素依次复制到新列表对象中,但涉及大量复制操作。
例:
a=[20,40]
print(id(a))
a=a+[50,70]
print(a)
print(id(a))
执行结果:
注:看前后a的地址可以知道二者不是同一个对象。
3.extend( )方法
(1).将目标列表所有元素添加到本列表的尾部,不创建新的列表对象。
例:
a=[20,40]
print(id(a))
a.extend([30,800])
print(a)
print(id(a))
执行结果:
4.insert( )插入元素
(1).将指定元素插入到列表对象的任意制定位置(会让插入位置后面的所有元素移动,影响处理速度)
5.乘法拓展
例:
a = ['234', "数字"]
b = a * 4
print(b)
执行结果:
四.列表的删除
1.del删除
(1).删除列表中指定位置的元素。
例:
A = [100,200,666,300,400]
print(A)
del A[2]
print(A)
执行结果:
实质:看似删除,实则拷贝。
【图片解释】:
(2).remove( )方法
(1).删除首次出现的指点元素,若不存在,则报错。
例:
A = [100,200,666,300,400,200,400,100]
print(A)
A.remove(200)
print(A)
执行结果:
3.pop( )方法
(1).删除并返回指定位置元素,默认最后一位
例:
A = [100, 200, 666, 300, 400, 200, 400, 999]
b = A.pop()
print(b)
c = A.pop(0)
print(c)
执行结果:
四.列表元素的访问与计数
1.索引直接访问元素
【注】:索引区间[0,列表长度-1],超出,抛异常。
2.index( )访问
(1).获得指定与元素在列表中首次出现的索引。
格式:index(value,[start],[end])
a = [100, 200, 666, 300, 400, 200, 400, 999]
c=a.index(100)
d=a.index(999)
print(c)
print(d)
执行结果:
3.count( )获得指定元素在列表中出现的次数。
a = [100, 200, 666, 300, 400, 200, 400, 999]
b = a.count(200)
print(b)
执行结果:
4.len( )返回列表长度
(1).返回列表长度即包含的元素个数
5.成员资格判断
(1).可用count( )方法,返回0,表示不存在;返回大于0,表示存在。
(2).但一般用in,返回True/False。
五.切片slice操作
(1).快速提取子列表或修改(同字符串切片相同)
六.列表的遍历(简要介绍)
例:
for obj in list(obj)
七.列表的排序
1.修改原列表,不创建新列表排序
例1:(升序排序)
a=[20,10,30,40]
print(id(a))
a.sort() # 默认升序排序
print(a)
print(id(a))
执行结果:
例2:(降序排序)
a=[20,10,30,40]
print(id(a))
a.sort(reverse=True) # 降序排序
print(a)
print(id(a))
执行结果:
2.建新列表排序
(1).内置函数sorted( )
【注】:返回新列表,不改变原列表。
a = [20, 10, 30, 40]
print(id(a))
b = sorted(a)
print(b)
print(id(b))
执行结果:
3.reversed( )返回迭代器
(1).reversed( )也支持逆序排列
【注】:不对原列表做修改,只返回一个逆序排列的迭代器对象。
例:
a=[20,70,40,30]
b=reversed(a)
print(list(b))
执行结果: