列表:
同构:所有的数据是相同
异构:所有的数据类型不同
创建列表
1.创建一个普通列表:
[1,2,3]
2.创建混合列表:
[1,2,3,'hehe',[1,2,3]]
3.创建空列表
[]
4.利用工厂函数创建
list():创建空列表
list(iterable):
从可迭代对象的元素中初始化一个新的列表
可迭代对象
列表的长度:列表元素的个数
len(列表)---返回列表长度
向列表中添加元素
1.L.append(object) 返回None
向列表末尾添加一个对象
2.extend(iterable): 返回None
从可迭代对象在将可迭代对象中的元素添加到列表中
添加到末尾
3.L.insert(index,object):
在下标index之前插入一个对象(元素)
元素下标从0开始目的为了让计算机更加好算,效率更高
从列表中访问元素
1.通过下标访问元素
2.通过for循环进行遍历
列表中所有的元素访问一遍,不重复,不遗漏
访问:读取数据,修改数据
3.通过下标直接修改元素内容
4.元素互换:
l[2],l[3]=l[3],l[2]
5.元素删除
1.clear()返回None,删除列表中所有元素
2.pop([index])删除并返回元素,当有参数时返回指定元素,否则,删除最后一个元素
如果列表为空或列表超出范围,抛出异常IndexError
3.remove(value) 返回None
删除当前指定值的元素
如果这个值不在列表中,则抛出ValueError异常
4.del 内容 删除语句
删除指定内容
列表分片
1.也称之为切片
slice
可以获取多个数据---利用切片
切片的方式
L[start:stop]
从start开始,到stop结束,stop取不到
本质上度原有的列表进行了拷贝,并没有修改原列表
简写方式
如果从起始下标获取,则起始下标可以省略
如果获取到最后一个数据,则结束下标可以省略
如果其开始下标和结束下标都不写---获取全部数据---整个列表的拷贝
取值范围
1.列表的下标:index
可以是负数:从后向前第index个元素
1.[-1]:从后向前数第一个元素
2.index的取值范围:
正数:0~len(list)-1
负数: -len(list)~-1
3.切片的index实际上是一个取值范围,并不是确切的下标
4.切片可以有第三个参数:step
l[start:stop:step]
step:步长:可以是负数
如果step是负数,则表示反向切片
列表常用的运算符
1.比较运算符:
比较规则
从第一个元素开始对比,如果值一样则比较下一个
如果是字符串,比较的是编码值
如果任何一个下标的元素可以比较出大小,则不继续比较
不同类型的数据不能比较大小
2.逻辑运算符:
3.拼接运算符:加号
l1+l2
返回一个新列表(两个列表元素拼接)
4.重复操作:乘号
多个相同的列表进行拼接
5.成员关系操作符
in/not int
列表中的其他函数
1.copy():返回list
浅拷贝
拷贝出一个新的列表
2.count(value) 返回元素出现次数
排序:
分析---程序归纳
程序归纳法,控制变量法
八大排序
冒泡排序,选择排序,快速排序
基数排序,归并排序,shell(希尔排序),直接插入排序,堆排序
冒泡排序
让列表中的元素相邻的两个元素比较大小,如果不符合条件的,则更换位置
#冒泡排序
l=[5,4,3,2,1]
length=len(1)
for i in range(length-1):
for j in range(1,length-i):
if[j-1]>l[j]:
l[j-1],l[j]=l[j],l[j-1]
print(1)
选择排序
每一次让同一个下标的元素和其他的元素作对比
#选择排序
l=[4,3,2,1]
n=len(l)
for i in range(n-1):
for j in range(i+1,n):
if l[i]>l[j]:
l[i],l[j]=l[j],l[i]
print(l)
sort()
排序:list自带的排序方法:
默认使用的归并排序算法
1.sort(key=None,reverse=false)返回None
将列表中的元素进行排序处理---会影响原列表
key:要使用的排序方法
reverse:是升序否要反转
默认是升序
2.reverse()返回None
原地反转
二维列表
列表中存放列表
l=[[1,2,3],[2,3,4],[3,4,5]]
一维列表中的一维列表(套用几层列表就是几维列表)
#矩阵
1.直接访问
通过两个下标进行访问
l[1][0]
第一个下标:行
第二个下标:列
2.遍历
利用双重循环(循环嵌套)
二维列表的创建
1.直接创建
l=[[1,2,3],
[4,5,6],
[7,8,9]]
2.拼接
l1=[[1,2,3]]
l2=[[4,5,6],[7,8,9]]
l1+l2
3.重复:
l1*3=[[1,2,3],[1,2,3],[1,2,3]]
如果修改任何一个数据,其他的元素也跟着改
重复运算:将同一个元素展示了多遍,本质上,是同一个对象