创建N个长度为M的数组,其中每个数组的序列加1

时间:2018-12-17 12:00:25

标签: python arrays

早上好

给定两个数字(a,b),我应该创建一个长度为'b'的'a'不同列表,其中每个列表的顺序加一。

例如:

1,2 => [[0,1]]

2,2 => [[0,1], [1,2]]

我正在尝试编写以下功能:

def increase_arrays(arrays, length):
    result = [[i for i in range(length)] for i in range(arrays)]
    return result

increase_arrays(2,3)
=> [[0, 1, 2], [0, 1, 2]]

我看不到如何修改代码,因此第二个数组是[1,2,3]。 谁能帮助解决问题?

3 个答案:

答案 0 :(得分:4)

您遇到著名的重复索引问题,您有2个索引i

下面是您需要的代码:

def increase_arrays(arrays, length):
    result = [[i + j for i in range(length)] for j in range(arrays)]
    return result

increase_arrays(2, 3)返回[[0, 1, 2], [1, 2, 3]]

答案 1 :(得分:1)

我终于设法解决了这个问题:

def increase_arrays(arrays, length):
    return [list(range(i,length+i)) for i in range(arrays)]

答案 2 :(得分:0)

这是一个很有趣的解决方案,只是为了好玩:

np.arange(arrays)[:,np.newaxis] + np.arange(length)[np.newaxis,:]