4.列表
- 如有疑问,详见Python语法官方文档
1.新建列表
举个例子:
a = [1 , 2 , 3 , 4 , 5]
b = a
b[0] = 66
print(a , b)
这时输出的a与b的第一个元素均为66,因为这样命令下的a和b为同一个数组
如果只想更改b数组而不改变a的话,即让a和b是两个不同的数组,可以这样写:
a = [1 , 2 , 3 , 4 , 5]
b = a[:]
b[0] = 66
print(a , b)
此时输出的a并没有发生改变,因为切片返回的是一个新数组
此外,还有数组的其他运算
a = [0 , 1 , 2]
d = a * 3 # d相当于a的浅拷贝
print(d) # 输出[0, 1, 2, 0, 1, 2, 0, 1, 2]
p = a * 1
p[0] = 66
print(a , p) #输出[0, 1, 2] [66, 1, 2]
a += [3] # 在a的末尾添加一个新元素3
print(a) # 输出[0, 1, 2, 3]
可以注意到,乘法运算也是创建一个新数组
2.常用操作
len(a)
返回列表长度。a.append(x)
在列表末尾添加一个新元素。a.pop()
删除列表的最后一个元素。a.reverse()
将整个列表翻转。a.sort()
将整个列表从小到大排序。
其中,a.pop()
有返回值,会返回删除的顶端元素,append、reverse、sort会返回none,没有返回值
3.嵌套列表
matrix = [ # 列表中的元素也可以是列表
[0, 1, 2],
[3, 4, 5],
[6, 7, 8], # 最后一个元素后可以添加逗号
]
matrix[1][0] = 99 # 修改嵌套列表中元素的值
print(matrix[1][0]) # 读取嵌套列表中元素的值
for i in range(len(matrix)): # 循环打印整个矩阵
for j in range(len(matrix[i])):
print(matrix[i][j], end=' ')
print() # 在行末输出回车
for row in matrix: # 循环打印整个矩阵
for x in row:
print(x, end=' ')
print() # 在行末输出回车
嵌套列表的常用初始化方式有两种。
采用append()函数初始化:
matrix = []
for i in range(3):
row = []
for j in range(3):
row.append(i * 3 + j)
matrix.append(row)
print(matrix)
采用for语句直接初始化:
matrix = []
for i in range(3):
matrix.append([i * 3 + j for j in range(3)])
print(matrix)
还可以更加简化:
matrix = [[i * 3 + j for j in range(3)] for i in range(3)]
print(matrix)
4.读入
-
当需要读入一行整数时,可以用:
a = list(map(int, input().split()))
。
类似地,当需要读入一行浮点数时,可以用a = list(map(float, input().split()))
-
a[::-1]
可以返回一个逆序的新列表。