【问题标题】:How to create and display a 3x3 grid in Python displaying numbers 1-9?如何在 Python 中创建和显示 3x3 网格,显示数字 1-9?
【发布时间】:2017-11-27 15:33:32
【问题描述】:

我希望在 python 中创建一个包含 1-49 值的 3x3 网格的板。

网格中的每个数字都需要能够更改和替换等,因此不能使用范围功能。

def board():

    board = [[1,2,3],
            [4,5,6],
            [7,8,9]]

    for i in board:
        print(i)

board()

上面的代码是我到目前为止所管理的。输出显示了一个非常成熟的网格,并且格式不正确。此外,如果我想让网格更大,比如 7x7,数字排列不正确。

输出显示如下:

[1, 2, 3]

[4, 5, 6]

[7, 8, 9]

如何创建和显示一个看起来整齐的网格,其中数字按行和列排列,并且我能够更改网格中的数字。

【问题讨论】:

  • 你能举例说明你对“整洁”的定义是什么吗?如果您可以提供“理想”场景的示例输出,将会有所帮助。此外,您是否尝试过进一步使用您的代码来尝试实现您想要达到的输出?

标签: python arrays


【解决方案1】:

整洁是什么意思?

def board():

   board = [[1,2,3],
            [4,5,6],
            [7,8,9]]

   for i in board:
       for j in i:
         print(j, end = "  ")
       print()    

board()

这会打印出来

  1  2  3  
  4  5  6  
  7  8  9  

【讨论】:

    【解决方案2】:

    这是一个使用list-comprehension的单行:

    print '\n'.join(' '.join(map(str, x)) for x in board)
    

    输出:

    1 2 3
    4 5 6
    7 8 9
    

    【讨论】:

      【解决方案3】:

      Generator expressionjoin 一起使用:

      board = [[1,2,3],
               [4,15,6],
               [7,8,49]]
      
      print('\n'.join('\t'.join('{:3}'.format(item) for item in row) for row in board))
      

      输出:

          1     2     3
          4    15     6
          7     8    49
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-29
        • 2013-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多