2 回答

TA贡献1886条经验 获得超2个赞
如果我稍微分解一下那行代码,我可以告诉你会发生什么。
下一行是一个列表理解,它说返回IwhereI被设置为列表 [2,4,6] 中的每个数字。这将返回一个看起来像 的列表[2,4,6]。所以这基本上是无用的,因为你没有操纵你的原始列表。
[I for I in [2,4,6]]
当你把它放在里面时,np.array()它只会从你的列表中创建一个数组。
现在使用以下代码,您将遍历 2-5 范围内的每个数字,不包括 5(5 是 I+3)
for i in range(2,5):
print(i)
2
3
4
你也可以这样做
for i in range(2,5):
print(np.array([range(2,4)]))
[[2 3]]
[[2 3]]
[[2 3]]
这是一个执行 3 次的循环,并打印一个包含 2-4 范围的数组。
当你把所有东西结合起来
[range(I, I+3) for I in [2,4,6]]
您是说列表中的每个数字[2,4,6]返回从该数字到该数字 + 3 的范围并将其放入列表中,该列表返回
[range(2, 5), range(4, 7), range(6, 9)]
然后将其转换为数组以获取
array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])

TA贡献1798条经验 获得超7个赞
np.array( # This is a numpy library's 2D data structure array.
[
range(i, i+3) # range function which produces iterator from i to i+2 (exclusive of end) i.e. if i = 1, range(1, 4) will give [1, 2, 3]
for i in [2,4,6] # Basic list comprehension for loop
]
)
添加回答
举报