嵌套列表推导式
很好!到目前为止,您已经掌握了列表推导式的基本语法。我们来更进一步提升您的代码能力。在本练习中,您将把一个列表推导式写在另一个列表推导式的内部,也就是嵌套列表推导式。听起来有点绕,但您一定可以做到!
先暂时不谈字符串。列表的一个常见用途是表示多维对象,比如矩阵。在 Python 中,矩阵可以表示为由列表组成的列表。比如,一个每行包含 0 到 4 的 5 x 5 矩阵可以写成:
matrix = [[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]]
您的任务是使用嵌套列表推导式重建这个矩阵。回忆一下,您可以用一个列表推导式创建矩阵的一行。要创建这个列表的列表,您只需将该列表推导式作为外层列表推导式的输出表达式:
[[输出表达式] for 迭代变量 in 可迭代对象]
请注意,这里的输出表达式本身就是一个列表推导式。
本练习是课程的一部分
Python 工具箱
练习说明
- 在内层列表推导式——也就是嵌套列表推导式的输出表达式——中,使用
range()创建从0到4的值列表。将col用作迭代变量。 - 在嵌套列表推导式的可迭代对象部分,使用
range()计数 5 行——也就是创建从0到4的值列表。将row用作迭代变量;注意,在创建这个列表的列表时,您并不需要使用该变量来生成具体的值。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]
# Print the matrix
for row in matrix:
print(row)