4.列表

4.列表

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]可以返回一个逆序的新列表。

posted @ 2023-09-27 14:57  乐池  阅读(22)  评论(0)    收藏  举报