1.列表可以加法,乘法
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]
2.嵌套列表(二维列表)矩阵
matrix=[[1,2,3],[4,5,6],[7,8,9]]
“也可以这样表达”
matrix=[[1,2,3]
[3,4,5]
[7,8,9]]
matrix
>>[[1,2,3],[4,5,6],[7,8,9]]
3.接2,如何以矩阵形式表达:
>>for i in matrix:
for each in i
print(each,end=' ')
print()
1 2 3
4 5 6
7 8 9
>>matrix[0]
[1,2,3]
>>matrix[0][0] // "第0行第0列"
4.新运算符 is (python认为字符串是不可变的,但是列表是可变的,因为可以添加or删除)
“如”
>>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 is b
>>False
5.拷贝
"浅拷贝"
>>x=[1,2,3]
y=x.copy()
x=[1]=1
>>[1,1,3]
>>y
>>[1,2,3]
"y是不受到改变的,因为copy的对象是整个列表不是变量的应用"
"切片的方式经行改变--浅拷贝"
>>x=[1,2,3]
y=x[:]
x[1]=1
x
>>[1,1,3]
y
>>[1,2,3]
"用切片的方式,依旧不会改变y的情况,任属于浅拷贝"
5.1 copy模块-深拷贝
>>import copy "这个是copy的模块,和之前copy列表不一样"
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.copy(x) "也是浅拷贝"
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.deecopy(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]]
6.语法,列表推导式
>> "列表推导式"--前提是列表:[expression for target in iterable]
>>x=[1,2,3]
>>for i in range(len(x)):
x[i]=x[i]*2
>>x
[2,4,6]
"用列表推导式的话"
>>x=[1,2,3]
>>x=[i*2 for i in x]
>>x
[2,4,6]
>>a=[i for i in ramge(10)]
>>a
[0,1,2,3,4,5,6,7,8,9]
>>b=[i for i in ramge(10)]
>>b
>>[1,2,3,4,5,6,7,8,9,10]
7.
"列表表达式的嵌套表达"--[expression for target1 in iterable1
for target2 in iterable2
...]
"将二维列表降为成一维":
x=[[1,2,3],[4,5,6]]
f=[col for row in x for col in row]
f
[1,2,3,4,5,6]
"非列表表达":
f=[]
for row in x:
for col in row:
flatten.append(col)
f
[1,2,3,4,5,6]
8.kiss原则 keep it simple or stupid
简介明了