问题在下面:
二维数组表示为一维整数数组。数组的第一个整数表示2d数组每一行的长度。其余的整数是数组的每个元素,首先是第1行,然后是第2行,依此类推
例如:
array = [5,11,12,13,14,15,16,17,18,19,20]
11,12,13,14,15
16,17,18,19,20
如果我像arr [1,2] = 12那样查询
我正尝试如下将c ++代码转换为python,但面临问题,我对python还是很陌生
def get_ar(arr, query):
t = arr[0]
k = arr[1]
for i in range t:
// go to new line
但这不是解决问题的逻辑方法
答案 0 :(得分:2)
这是解决问题的简单方法。
for i in range(1,len(array),array[0])
创建一个范围,其中i
等于1(跳过0,因为我们不希望array
中的第一个数字),然后加上array[0]
的值每次。
array[i:i+array[0]]
选择从i
至i+array[0]
的值范围,这将总共为您提供array[0]
个元素。
array = [5,11,12,13,14,15,16,17,18,19,20]
array2d = [array[i:i+array[0]] for i in range(1,len(array),array[0])]
答案 1 :(得分:0)
output = []
for i in range(len(array)//array[0]):
output.append(array[i*array[0]+1:(i+1)*array[0]+1])