1 列表的加法和乘法
>>> s=[1,2,3]
>>> t=[4,5,6]
>>> s+t
[1, 2, 3, 4, 5, 6]
嵌套列表
>>> 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
通过下标访问嵌套列表
>>> matrix[0]
[1, 2, 3]
>>> x=[1,2,3]
>>> y=x
>>> x[1]=1
>>> x
[1, 1, 3]
>>> y
[1, 1, 3]
>>> x=[1,2,3]
>>> y=x.copy() ----------------------------copy方法拷贝的是整个列表对象,不仅仅是变量的引用。
>>> x[1]=1
>>> x
[1, 1, 3]
>>> y
[1, 2, 3]-------所以y不会改变
利用切片语法也可以实现拷贝的效果
>>> 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]]---------------------这里y会随x改变
深拷贝
>>> 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]]---------------------y不会随之改变
2 列表推导式
>>> x=[1,2,3,4,5]
>>> for i in range(len(x)):
x[i]=x[i]*2
>>> x
[2, 4, 6, 8, 10] ------------------ 用for循环使列表的值扩大两倍
我们使用列表推导式就会让问题变得简单
>>> x=[1,2,3,4,5]
>>> x=[i*2 for i in x]
>>> x
[2, 4, 6, 8, 10]
列表推导式的基本语法------【expression for target in iterable 】
>>> 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]
--------------------------------------------------------------------------每个字符串提取出来连续出现两次
>>> y=[c*2 for c in "FishC"]
>>> y
['FF', 'ii', 'ss', 'hh', 'CC']
--------------------------------------------------------------------------
>>> matrix=[[1,2,3],
[4,5,6],
[7,8,9]]
>>> col2=[row[1] for row in matrix] -----------表示提取matrix 中每一行的第二个元素
>>> col2
[2, 5, 8]
输出主对角线上的元素
>>> x=[matrix[i][i] for i in range (len(matrix))] --------------ii表示相同的下标索引值 00 11 22
>>> x
[1, 5, 9]