列表
列表格式
aa = [1,2,a,b,'wo',"的"] #定义列表
print(aa[-1]) #输出最后一个元素
aa[x:y:z]
x:首元素地址
y:末尾元素地址
z:跨度
len()函数
获取列表的长度
length = len(aa) #length = 6
print(aa[length -1]) #输出最后一个元素
append()函数
将 x 元素添加到 s 列表的末尾,相当于 s[len(s):] = [x]
aa = [1,2,3,4]
aa.append(5)
等同
aa[len(aa):] = [5]
aa = [1,2,3,4,5]
extnd()函数
将可迭代对象中的每个元素依次添加到 s 列表的末尾,相当于 s[len(s):] = iterable
aa.extnd[6,7,8,9]
等同
aa[len(aa):] = [6,7,8,9]
aa = [1,2,3,4,5,6,7,8,9]
insert函数
将 x 元素插入到 s 列表中的 i 位置(其它元素依次往后递推)。所以,s.insert(0, x) 是将 x 元素插入到 s 列表的开头;s.insert(len(s), x) 则是将 x 元素插入到 s 列表的末尾,等同于 s.append(x)
aa = [1,3,4,5]
aa.insert(1,2) #在1位置添加2元素
remove()函数
删除 s 列表中第一个 x 元素;如果列表中不存在 x 元素,则抛出 ValueError 异常
aa = [1,2,3,4,5]
aa.remove(3)
pop()函数
删除 s 列表中第 i 个元素,并将其返回;如果没有指定 i 参数,s.pop() 将删除最后一个元素并返回
aa = [1,2,3,4,5]
aa.pop(2) #aa = [1,2,4,5]
clear()方法
删除 s 列表中的所有元素,相当于 del a[:]
aa = [1,2,3,4,5]
aa.clear()
列表的改操作
基本操作
aa = [1,2,3,4,5,6]
aa[0] = 0 #aa = [0,2,3,4,5,6]
aa[2:] = [7,7,7] #aa = [0,2,7,7,7]
先将(=)左边的指定内容删除
然后将(=)右边的内容插入到被删除的位置
sort()方法
实现递增排序
aa = [3,2,1]
aa.sort() #aa = [1,2,3]
reverse()
翻转列表元素
aa = [2,3,1]
aa.sort() #aa = [1,2,3]
aa.reverse() #aa = [3,2,1]
aa.sort(reverse = True)
查
count()
查找元素出现次数
index()
查找元素索引值
aa.index(3,1,7)
#查找元素3的索引值,地址从1到7
copy()
将列表整体复制
:浅拷贝
aa = [1,2,3,4,5,6]
aa_1 = aa.copy()
aa_2 = aa[:]
print(aa_1)
print(aa_2)
多维列表(矩阵)
aa = [[1,2,3],[4,5,6],[7,8,9]]
访问嵌套列表
for i in aa:
for each in i:
print(each,end=' ')
print()
深拷贝
import copy #导入模块
aa = [[1,2,3],[4,5,6],[7,8,9]]
bb = copy.copy(aa) #浅拷贝
cc = copy.deepxopy(aa) #深拷贝
列表推导式
例如:将列表元素值*2
aa = [1,2,3,4,5]
for i in range(len(aa)):
aa[i] = aa[i] * 2
等同
aa = [i * 2 for i in aa]
获得矩阵对角线的元素
aa = [[1,2,3],
[4,5,6],
[7,8,9]]
bb = [aa[i][i] for i in range(len(aa))]
#主对角线
bb = [aa[i][len(aa) - i - 1] for i in range(len(aa))]
#副对角线
创建嵌套列表
aa = [0] * 3
for i in range(3):
aa[i] = aa * 3
等同
aa = [[0] * 3 for i in range(3)]
添加if分支
aa = [i for i in range(10) if i % 2 == 0]
列表降维
aa = [[1,2,3],
[4,5,6],
[7,8,9]]
bb = [b for c in aa for b in c]
等同
bb = []
for c in aa:
for b in c:
bb.append(b)