终极列表
##列表的加法与乘法
s = [1,2,3]
t = [4,5,6]
s+t
[1, 2, 3, 4, 5, 6]
s * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
#嵌套列表
matrix = [[1,2,3],[4,5,6],[7,8,9]]
matrix =[[1,2,3],
[4,5,6],
[7,8,9]]
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#访问嵌套列表
for i in matrix:
for each in i:
print(each)
1
2
3
4
5
6
7
8
9
for i in matrix:
for each in i:
print(each,end='')
print()
123
456
789
matrix[0]
[1, 2, 3]
matrix[0][0]
1
matrix[1][1]
5
matrix[2][2]
9
matrix[1][2]
6
A = [0]*3
A
[0, 0, 0]
for i in range(3):
A[i] = [0] * 3
A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
B=[[0]*3]*3
B
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
A[1][1]=1
A
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
B[1][1]=1
B
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
# is运算符
x = "fish"
y = "fish"
x is y
True
x = [1,2,3]
y = [1,2,3]
x is y
False
A[0] is A[2]
False
A[0] is A[1]
False
A[1] is A[2]
False
B[0] is B[1]
True
B[1] is B[2]
True
##浅拷贝VS深拷贝
#浅拷贝
x = [1,2,3]
y = x.copy()
x[1]=1
x
[1, 1, 3]
y
[1, 2, 3]
x = [1,2,3]
y =x[:]
x[1]=1
x
[1, 1, 3]
y
[1, 2, 3]
x = [[1,2,3],[4,5,6],[7,8,9]]
y = x.copy()
x[1][1]=0
x
[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
y
[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
#深拷贝
x = [[1,2,3],[4,5,6],[7,8,9]]
y = copy.deepcopy(x)
x[1][1] = 0
x
[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
y
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
##列表推导式
一般的代码:
oho = [1,2,3,4,5]
for i in range(len(oho)):
oho[i] = oho[i] * 2
oho
[2, 4, 6, 8, 10]
列表推导式基本语法:[expression for targetin iterable]
oho = [1,2,3,4,5]
oho = [i * 2 for i in oho]
oho
[2, 4, 6, 8, 10]
x = [i for i in range(10)]
x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x = [i+1 for i in range(10)]
x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(10):
x.append(i+1)
x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [c * 2 for c in "fish"]
y
['ff', 'ii', 'ss', 'hh']
显示脚本 :
code = [ord(c) for c in "fish"]
code
[102, 105, 115, 104]
matrix = [[1,2,3],[]]
matrix = [[1,2,3],
[4,5,6],
[7,8,9]]
提取某一列:
col2 = [row[1] for row in matrix]
col2
[2, 5, 8]
提取对角元:
diag = [matrix[i][i] for i in range(len(matrix))]
diag
[1, 5, 9]
提取反对角元:
diag = [matrix[i][2-i] for i in range(len(matrix))]
diag
[3, 5, 7]
#列表推导式语句2
[expression for target initerable if condition]
[i for i in range(10) if i% 2 == 0]
[0, 2, 4, 6, 8]
even = [i + 1 for i in range(10) if i % 2 == 0]
even
[1, 3, 5, 7, 9]
提取首字母f:
words = ["great","bug","fish","fat"]
fwords = [w for w in words if w[0] == 'f']
fwords
['fish', 'fat']
列表推导式的嵌套语法:
[expression for target1 in iterable1
for target2 in iterable2
........
for targetN IN iterableN
将二维列表降为一维列表:
matrix = [[1,2,3],[4,5,6],[7,8,9]]
flatten = [col for row in matrix for col in row]
flatten
[1, 2, 3, 4, 5, 6, 7, 8, 9]
flatten = []
for row in matrix:
for col in row:
flatten.append(col)
flatten
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[x + y for x in "flish" for y in "FLISH"]
['fF', 'fL', 'fI', 'fS', 'fH', 'lF', 'lL', 'lI', 'lS', 'lH', 'iF', 'iL', 'iI', 'iS', 'iH', 'sF', 'sL', 'sI', 'sS', 'sH', 'hF', 'hL', 'hI', 'hS', 'hH']
_= []
for x in "flish":
for y in "FLISH":
_.append(x+y)
_
['fF', 'fL', 'fI', 'fS', 'fH', 'lF', 'lL', 'lI', 'lS', 'lH', 'iF', 'iL', 'iI', 'iS', 'iH', 'sF', 'sL', 'sI', 'sS', 'sH', 'hF', 'hL', 'hI', 'hS', 'hH']
for x in range(10):
if x % 2 == 0:
for y in range(10):
if y % 3 == 0:
_.append([x,y])
_
[[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]
程序原则:Keep It Simple and Stupid
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix