早上好
给定两个数字(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]
。
谁能帮助解决问题?
答案 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,:]