【问题标题】:How to create a 2d grid?如何创建二维网格?
【发布时间】:2014-07-29 22:20:08
【问题描述】:

所以当我尝试制作 2D 网格时出现此错误。我知道它说我的列表中似乎没有 5 行。那是错误。这是我尝试过的:

board = ["O", "O", "O", "O", "O"]

    def create_board(width, height, empty='O'):
        for x in range(5):
            board.append(board)
            return board
        return            

a = create_board(5, 5)
print(a)  # show "empty" board that was created

【问题讨论】:

  • 如果您的问题与 Java 无关,为什么要花这么多的时间提 Java?
  • 你能提供一些你尝试过的例子吗?

标签: python list python-3.x


【解决方案1】:
a_2d_list = [
             [r,o,w,1],
             [r,o,w,2],
             ...]

你是这个意思吗?

board = [["O", "O", "O", "O", "O"] for _ in range(0, 5)]
print "\n".join(map(" ".join,board))

【讨论】:

  • 是的,但我的意思是多行多列。
  • 现在你明白了。谢谢。预期的输出基本上就是我想要的。
【解决方案2】:

你的意思是这样的?

def create_board(width, height, empty='O'):
    return [[empty for _ in range(width)] for _ in range(height)]

board = create_board(3, 4)
print(board)  # show "empty" board that was created

board[1][1] = 'X'
print(board)  # show board after modification

输出:

[['O', 'O', 'O'], ['O', 'O', 'O'], ['O', 'O', 'O'], ['O', 'O', 'O']]
[['O', 'O', 'O'], ['O', 'X', 'O'], ['O', 'O', 'O'], ['O', 'O', 'O']]

【讨论】:

  • 你的好像有两行,这对我来说似乎很奇怪,但输出基本上是我想要的。我希望输出为 5x5 行的列。在每一行中,都会有一个列表。明白我的意思了吗?
  • 有两个print(board) 语句。第二个是在修改一个单元格后显示板上的内容。该示例创建了一个 4 行的板,每行包含 3 个项目的 list。如果您想要 5x5 板,请致电 create_board(5, 5)
  • 第 2 行的“_”中是什么?
猜你喜欢
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
相关资源
最近更新 更多