1.列表的+与*
列表的+实际就是将两个列表拼接起来,而*则是将列表中 的元素重复多次
关于列表的*有一个注意事项,下面会讲到
示例:
>>> m=[1,2,3]
>>> n=[4,5,6]
>>> m+n
[1, 2, 3, 4, 5, 6]
>>> m*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
2.嵌套列表
即列表中的元素是列表
类似于多维数组
二维列表即矩阵
我们还可以对嵌套列表进行迭代
访问二维列表的方法与访问二维数组类似。
示例:
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> for i in a:
for j in i:
print(j,end=' ')
print()
1 2 3
4 5 6
7 8 9
>>> a[0]
[1, 2, 3]
>>> a[0][1]
2
创建二维列表
通过循环语句创建二维列表
>>> b=[0]*3
>>> for i in range(3):
b[i]=[0]*3
>>> b
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
注意不能用下面这种方法建立二维列表
>>> c=[[0]*3]*3
>>> c
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
#修改时会出错
>>> c[1][1]=1
>>> c
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
>>> b[1][1]=1
>>> b
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
对Python列表使用乘法,对于不可变对象(如数字、字符串)而言是复制值,但对可变对象(如列表、字典)而言则是复制引用,因此对于包含可变对象的列表不要使用列表乘法
is运算符(即同一性运算符)
接上面的代码
>>> b[1] is b [2]
False
>>> c[1] is c[2]
True
可见,c列表中的每一行实际都是一样的,而b的每一行都是单独的一行
如图: