本文介绍Python2中的生成矩阵的方法
1》借助于内置函数range()和for循环
def makeMatrix(row_num,column_num,start=0,step=1):
matrix=[]
row=[]
for i in range(row_num):
for j in range(column_num):
row.append(start)
start+=step
matrix.append(row)
row=[]
return matrix
M=makeMatrix(3,4) # 起始位置和步长取默认值
print M
运行结果,如下:
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
M=makeMatrix(3,4,10,2) # 指定起始位置和步长
print M
运行结果如下:
[[10, 12, 14, 16], [18, 20, 22, 24], [26, 28, 30, 32]]
2》由一个元组(或列表)生成矩阵
def tuple2Matrix(t,row_num,column_num):
row=[]
row_count=0
count=0
for x in t:
row.append(x)
count+=1
if count%column_num==0: #判断是否填满了一行
yield row
row=[]
row_count+=1
if row_count==row_num: #达到要求的行数,就结束循环
break
matrix=[]
t=(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
for r in tuple2Matrix(t,2,4):
matrix.append(r)
print matrix
运行结果如下:
[[1, 2, 3, 4], [5, 6, 7, 8]]