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
]
)
添加回答
舉報