【问题标题】:How can I turn random matrix into a table?如何将随机矩阵变成表格?
【发布时间】:2014-03-26 21:58:33
【问题描述】:

这是我得到的代码。

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, 86, 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

【问题讨论】:

    标签: python list matrix 2d tabular


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      只需更改打印方式:

      >>> 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)
      

      【讨论】:

        猜你喜欢
        • 2016-06-30
        • 2015-01-12
        • 1970-01-01
        • 1970-01-01
        • 2021-01-03
        • 1970-01-01
        • 2019-10-14
        • 2011-12-21
        • 1970-01-01
        相关资源
        最近更新 更多