Python 生成矩阵

限定步长,起始数字,然后生成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]]