为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助理解这个范围函数

需要帮助理解这个范围函数

喵喔喔 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 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信