在Python中将字符串转换为二维列表

2024-09-29 01:31:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串:

890000071100000006000207000002060400000972000006080300000501000200000004650000089

我想把它转换成一个二维列表,这样看起来像这样:

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

有人知道如何在Python中实现这一点吗

这就是我所做的:

board_str = "890000071100000006000207000002060400000972000006080300000501000200000004650000089"

def convert(boardpm: str) -> list:
    list = []

    for i in range(0, len(boardpm)):
        list.append(boardpm[i])

    boardpm = [list[i:i+9] for i in range(0, len(list), 9)]

    return boardpm

谢谢大家!


Tags: 字符串inboardconvert列表forlenreturn
1条回答
网友
1楼 · 发布于 2024-09-29 01:31:55
[list(board_str[i:i+9]) for i in range(0, len(board_str), 9)]
[['8', '9', '0', '0', '0', '0', '0', '7', '1'],
 ['1', '0', '0', '0', '0', '0', '0', '0', '6'],
 ['0', '0', '0', '2', '0', '7', '0', '0', '0'],
 ['0', '0', '2', '0', '6', '0', '4', '0', '0'],
 ['0', '0', '0', '9', '7', '2', '0', '0', '0'],
 ['0', '0', '6', '0', '8', '0', '3', '0', '0'],
 ['0', '0', '0', '5', '0', '1', '0', '0', '0'],
 ['2', '0', '0', '0', '0', '0', '0', '0', '4'],
 ['6', '5', '0', '0', '0', '0', '0', '8', '9']]

或者-如果您想要整数而不是字符串-使用

[list(map(int, board_str[i:i+9])) for i in range(0, len(board_str), 9)]
 [[8, 9, 0, 0, 0, 0, 0, 7, 1],
  [1, 0, 0, 0, 0, 0, 0, 0, 6],
  [0, 0, 0, 2, 0, 7, 0, 0, 0],
  [0, 0, 2, 0, 6, 0, 4, 0, 0],
  [0, 0, 0, 9, 7, 2, 0, 0, 0],
  [0, 0, 6, 0, 8, 0, 3, 0, 0],
  [0, 0, 0, 5, 0, 1, 0, 0, 0],
  [2, 0, 0, 0, 0, 0, 0, 0, 4],
  [6, 5, 0, 0, 0, 0, 0, 8, 9]]

相关问题 更多 >