为什么需要列表
- 变量可以储存一个元素,而列表是一个“大容器”可以储存N多个元素,程序可以方便的对这些数据进行整体操作
- 列表相当于其他语言的数组
- 列表可以存储多种数据类型
- 列表的数据类型为list
列表的创建
列表需要使用中括号[ ],元素之间使用英文的逗号进行分隔
列表的创建方式
- 使用中括号
- 调用内置函数list()
a=[1,2,3,'a','b']
a=list([1,2,3,'a','b'])
空列表
a=[]
a=list()
列表的特点
- 列表元素按照顺序有序排序
- 索引映射唯一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
列表的查询操作
获取列表中指定元素的索引
获取列表中的单个元素
index()函数的使用
a=['hello',3.14,98,'hello']
print(a.index('hello')) #查找hello的索引
print(a.index('hello',1,4)) #在指定的范围内查找索引
列表元素
列表元素的查询操作
获取列表中的多个元素
语法格式
列表名[start:stop:step]
切片操作
a=[1,2,3,4,5,6,7,8]
#start=1,stop=6,step=1
print(a[1:6:1])
执行结果:[2, 3, 4, 5, 6]
print(a[::-1]) #步长为负数,逆向输出
执行结果:[8, 7, 6, 5, 4, 3, 2, 1]
判断指定元素在列表中是否存在
列表元素的遍历
列表元素的增删改操作
列表元素的增加操作
a=[1,2,3,4,5,6,7,8]
b=['a','b']
a.append(100) #向列表末尾添加一个元素
print(a)
a.extend(b) #向列表末尾添加多个元素
print(a)
a.insert(2,100) #指定在列表任意位置添加一个元素
print(a)
a[0:5:]=b #在任意位置添加N多个元素
print(a)
列表元素的删除操作
a=[1,2,3,4,5,6,7,8,3]
a.remove(3) #从列表中移除一个元素,如果有重复元素只移第一个元素
a.pop(1) #pop()根据索引移除元素
a.pop() #如果不指定索引,则删除列表最后一个元素
new_a=a[1:3] #切片操作,删除至少一个元素,将产生一个新的列表对象
a[1:3]=[] #不产生新的列表对象,而是删除原列表中的内容
a.clear() #清除列表中的所有元素
del a #将列表对象删除
列表元素的修改操作
- 为指定索引的元素赋予一个新值
- 为指定的切片赋予一个新值
a=[1,2,3,4] #一次修改一个值
a[2]=100
print(a)
a[1:3]=[300,400,500] #修改切片的值
print(a)
列表元素的排序操作
常见的两种方式
- 调用sort()方法,列表中的所有元素按照从小到大的顺序进行排序(升序),可以指定reverse=True,进行降序排序
- 调用内置函数sortd(),可以指定reverse=True,进行降序排序,原列表不发生改变
a=[10,52,68,20]
a.sort() #开始排序,调用列表对象的sort方法,升序排序,不改变也
print(a)
a.sort(reverse=True) #通过指定关键字参数,将列表中的元素进行降序排序 reverse=False为升序排序
print(a)
#sort()函数排序列表不会产生新的列表对象
new_a=sorted(a) #sorted()函数对列表进行排序,将产生一个新的列表,原列表不发生任何改变
sorted(a,reverse=True) #通过指定关键字参数,将列表中的元素进行降序排序 reverse=False为升序排序
列表生成式
列表生成式:生成列表的公式
语法格式:
”表示列表元素的表达式“中通常包含自定义变量
a=[i for i in range(1,10)]
print(a)
b=[i*2 for i in range(1,6)] #列表中的元素的值为2,4,6,8,10
print(b)