|
发表于 2021-4-7 10:20:37
|
显示全部楼层
**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],
[4, 5, 6],
[7, 8, 9]]
>>> matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
这两种写法是等价的。第二种写法与第一种写法打印出的内容一样,第二种写法的好处是显得更为直观。
**3.访问嵌套列表**
访问嵌套列表中的元素,我们可是使用循环来实现。
迭代一个列表我们使用一层循环,迭代嵌套列表我们就应该相应使用使用嵌套循环。
>>> 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()
[ print默认最后跟一个换行符,end = ' '改为以空格隔开各元素 ]
1 2 3
4 5 6
7 8 9
[列表更加直观]
通过下标,同样是可以访问列表的:
>>> matrix[0]
[1, 2, 3]
[我们只给出一个下标索引,我们得到的是以行为单位的整个列表]
为了访问列表中的列表的元素,我们需要使用两次下标索引
>>> matrix[0][0]
1
>>> matrix[1][1]
5
>>> matrix[2][2]
9
上面我们通过每个元素的值来创建二维列表,除此之外,还可以通过循环语句创建并初始化二维列表
>>> 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的方法是错误的,而且错的非常高级,通常不容易发现。
>>> 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]]
[B相当于每一个列表复制粘贴了三次,所以一个列表有改动,其他列表也会跟着改]
**4.运算符is**
也称之为同一性运算符,用于检验两个变量是否指向同一个对象的一个运算符。
>>> x = "FishC"
>>> y = "FishC"
>>> x is y
True
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x is y
False
[这说明python对于不同对象的存储机制是不一样的
字符串是不可变的,只需要在内存中开辟一个位置来存放,
列表是可变的,尽管两个列表内容一样,但python还是需要为它们开辟两个不同的位置]
进行"亲子鉴定"
>>> A[0] is A[2]
False
>>> B[0] is B[1]
True
>>> B[1] is B[2]
True
[B实际拷贝的只是对同一个列表的引用] |
|