如何将随机矩阵转换为表格?

时间:2014-03-26 21:58:33

标签: python list matrix 2d tabular

这是我给出的代码。

import random

def create_random_matrix(rows_min, rows_max, cols_min, cols_max):
    matrix = []

    # generate a random number for the number of rows
    # notice that randint works differently from similar functions
    # you have seen in that rows_min and rows_max are both inclusive
    # http://docs.python.org/3/library/random.html#random.randint
    rows = random.randint(rows_min, rows_max)

    for row in range(rows):
        # add a row to the matrix
        matrix.append([])

        # generate a random number for the number of columns
        cols = random.randint(cols_min, cols_max)

        # generate a random number between 1 and 100 for each
        # cell of the row
        for col in range(cols):
        matrix[row].append(random.randint(1, 100))

    # done
    return matrix

def print_matrix(twod_list):
    print(twod_list)

if __name__ == "__main__":

    random_matrix = create_random_matrix(8, 12, 3, 7)

    print_matrix(random_matrix)

代码创建一个像这样的随机矩阵:

  
    
      

[[52,23,11,95,79],[3,63,11],[5,78,3,14,37],[89,98,10],[24,60,80] ,73,84,94],[45,14,28],[51,19,9],[43,46,63,71,19],[58,6,43,17,87,64,87 ],[77,57,97],[9,71,54,20],[77,86,22]]

    
  

但是如何更改代码以输出这样的内容呢?

36 83 35 73

28 11 3 45 30 44

39 97 3 10 90 5 42

55 73 56 27 7 37

84 49 35 43

100 20 22 95 75 25

58 81 26 34 41 44 72

32 23 21

31 37 1

95 90 26 6 78 49 22

5 17 31

86 25 73 56 10

2 个答案:

答案 0 :(得分:0)

只需更改打印方式:

>>> for i in random_matrix:
...   print " ".join(str(j) for j in i)
... 
52 23 11 95 79
3 63 11
5 78 3 14 37
89 98 10
24 60 80 73 84 94
45 14 28
51 19 9
43 86 63 71 19
58 6 43 17 87 64 87
77 57 97
9 71 54 20

只是为了好玩,一行:

print "\n".join(" ".join(str(j) for j in i) for i in random_matrix)

答案 1 :(得分:0)

这是打印列表列表成员的问题的简单解决方案:

mymatrix = [[52, 23, 11, 95, 79], [3, 63, 11], [5, 78, 3, 14, 37], [89, 98, 10], [24, 60, 80, 73, 84, 94], [45, 14, 28], [51, 19, 9], [43, 86, 63, 71, 19], [58, 6, 43, 17, 87, 64, 87], [77, 57, 97], [9, 71, 54, 20], [77, 86, 22]]
for list in mymatrix:
    for item in list:
        print item,
    print

输出看起来像:

52 23 11 95 79
3 63 11
5 78 3 14 37
89 98 10
24 60 80 73 84 94
45 14 28
51 19 9
43 86 63 71 19
58 6 43 17 87 64 87
77 57 97
9 71 54 20
77 86 22