亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要幫助理解這個范圍函數

需要幫助理解這個范圍函數

喵喔喔 2023-06-02 15:08:53
我是一名新程序員,我不明白:np.array([range(i, i+3) for i in [2,4,6]])我知道在 range 函數中有開始、停止和步驟,但這里的寫法很不一樣。輸出是一個3*3的數組234 456 678我不明白這個數組是怎么來的。I+3 是什么意思?是 2、4、6 x 值嗎?在這種情況下,for 循環究竟在做什么?它在迭代什么?謝謝您的幫助。
查看完整描述

2 回答

?
MM們

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]])


查看完整回答
反對 回復 2023-06-02
?
元芳怎么了

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

    ]

)


查看完整回答
反對 回復 2023-06-02
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號