python学习——二维列表的列表生成式
二维列表的列表生成式允许你生成一个列表,其中每个元素本身也是一个列表。这在处理矩阵或表格数据时非常有用。
以下是如何使用列表生成式来创建二维列表的示例:
文章目录
- 基本语法
- 示例
- 1. 创建一个 3x3 的单位矩阵
- 2. 创建一个 4x4 的乘法表
- 3. 创建一个 5x5 的对角线矩阵(对角线上的元素为1,其余为0)
- 实操
基本语法
[[expression for variable in iterable] for variable in iterable]
这里外层循环生成行,内层循环生成列。
示例
1. 创建一个 3x3 的单位矩阵
identity_matrix = [[1 if i == j else 0 for i in range(3)] for j in range(3)]
print(identity_matrix)
# 输出:
# [[1, 0, 0],
# [0, 1, 0],
# [0, 0, 1]]
2. 创建一个 4x4 的乘法表
multiplication_table = [[i * j for i in range(1, 5)] for j in range(1, 5)]
print(multiplication_table)
# 输出:
# [[1, 2, 3, 4],
# [2, 4, 6, 8],
# [3, 6, 9, 12],
# [4, 8, 12, 16]]
3. 创建一个 5x5 的对角线矩阵(对角线上的元素为1,其余为0)
diagonal_matrix = [[1 if i == j or i + j == 4 else 0 for i in range(5)] for j in range(5)]
print(diagonal_matrix)
# 输出:
# [[1, 0, 0, 0, 1],
# [0, 1, 0, 1, 0],
# [0, 0, 1, 0, 0],
# [0, 1, 0, 1, 0],
# [1, 0, 0, 0, 1]]
实操
# 创建二维列表
lst = [
['城市', '环比', '同比'],
['北京', 102, 103],
['上海', 104, 504],
['深圳', 100, 39]
]
print(lst)
for row in lst:
for item in row:
print(item, end='\t')
print()
# 列表生成式生成一个4行5列的二维列表
lst2 = [[j for j in range(5)] for i in range(4)]
print(lst2)