1. 学习
  2. /
  3. 课程
  4. /
  5. Python 工具箱

Connected

练习

嵌套列表推导式

很好!到目前为止,您已经掌握了列表推导式的基本语法。我们来更进一步提升您的代码能力。在本练习中,您将把一个列表推导式写在另一个列表推导式的内部,也就是嵌套列表推导式。听起来有点绕,但您一定可以做到!

先暂时不谈字符串。列表的一个常见用途是表示多维对象,比如矩阵。在 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 可迭代对象]

请注意,这里的输出表达式本身就是一个列表推导式。

说明

100 XP
  • 在内层列表推导式——也就是嵌套列表推导式的输出表达式——中,使用 range() 创建从 0 到 4 的值列表。将 col 用作迭代变量。
  • 在嵌套列表推导式的可迭代对象部分,使用 range() 计数 5 行——也就是创建从 0 到 4 的值列表。将 row 用作迭代变量;注意,在创建这个列表的列表时,您并不需要使用该变量来生成具体的值。