限定步長,起始數字,然後生成x行,y列的矩陣
>>> def range2rect(x,y,start=0,step=1):
... N=[]
... F=[]
... for i in range(x): #等價於for(i=0,i<x,i++)
... for j in range(y):
... F.append(start)
... start += step
... N.append(F)
... F=[]
... return N
...
>>> N=range2rect(3,4)
>>> N
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
由一個元組形式生成矩陣
>>> def tuple2rect(tuple,x,y):
... res=[]
... row=count=0
... for i in tuple:
... count += 1
... res.append(i)
... if count%y ==0:
... yield res
... res=[]
... row += 1
... if row == x: #一旦達到所要求的行數,就結束循環
... break
...
>>> rect=[]
>>> for i in tuple2rect((1,2,3,3,4,5,5,6,7,8),2,3):
... rect.append(i)
...
>>> rect
[[1, 2, 3], [3, 4, 5]]