试图理解复杂的功能
Trying to understand complex function
我正在做这个 AI 项目,我需要在其中创建一个包含任意 5 个连续数字的数组。例如 [[[1],[2],[3],[4],[5]]]。幸运的是,我正在学习教程并得到了这条线来完成它:Data = [[[i+j] for i in range(5)] for j in range(100)]
。我想知道这是什么意思。我非常了解 Python 但从未使用过这种表示法。
代码
Data = [[[i+j] for i in range(5)] for j in range(100)]
可以裁成两块:
[[i+j] for i in range(5)]
和
[[[i+j] for i in range(5)] for j in range(100)]
它们都包含一个list comprehension。先评价一下吧
[[i+j] for i in range(5)]
这类似于:
elements = []
for i in range(5):
elements.append([i + j])
产生:
[[0], [1], [2], [3], [4]]
外循环执行此任务一百次,但每次 运行 都会将内循环起始值增加 1。所以我们生成 100 个列表,包含 5 个元素的列表,每个列表包含 1 个元素的列表。
我正在做这个 AI 项目,我需要在其中创建一个包含任意 5 个连续数字的数组。例如 [[[1],[2],[3],[4],[5]]]。幸运的是,我正在学习教程并得到了这条线来完成它:Data = [[[i+j] for i in range(5)] for j in range(100)]
。我想知道这是什么意思。我非常了解 Python 但从未使用过这种表示法。
代码
Data = [[[i+j] for i in range(5)] for j in range(100)]
可以裁成两块:
[[i+j] for i in range(5)]
和
[[[i+j] for i in range(5)] for j in range(100)]
它们都包含一个list comprehension。先评价一下吧
[[i+j] for i in range(5)]
这类似于:
elements = []
for i in range(5):
elements.append([i + j])
产生:
[[0], [1], [2], [3], [4]]
外循环执行此任务一百次,但每次 运行 都会将内循环起始值增加 1。所以我们生成 100 个列表,包含 5 个元素的列表,每个列表包含 1 个元素的列表。