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

我是一名新程序员,我不明白:

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 循环究竟在做什么?它在迭代什么?

谢谢您的帮助。


喵喔喔
浏览 133回答 2
2回答

MM们

如果我稍微分解一下那行代码,我可以告诉你会发生什么。下一行是一个列表理解,它说返回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)234你也可以这样做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]])

元芳怎么了

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    ])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python