如何将字符串列表转换为字符列表

时间:2020-03-30 21:15:54

标签: python

我有一个这样的列表:

grid_1 = ('  ##   ',
          ' ####  ',
          '####   ',
          '#######',
          ' ###   ',
          ' ##    ')

每个元素的长度相同,并且由空格''或哈希'#'组成

我想生成一个新列表,其中上面的每个元素都在其自己的子列表中,并且每个字符都用逗号分隔。

这是我到目前为止所拥有的:

workable_grid = [[None]*len(grid_1[0])] * len(grid_1)
for i in range(len(grid_1)):
    for j in range(len(grid_1[0])):
        workable_grid[i][j] = grid_1[i][j]

但是我得到的结果是错误的:

wrong_list = [[' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' ']]

任何建议都值得赞赏。谢谢!

2 个答案:

答案 0 :(得分:3)

good_grid = [ list(row) for row in grid_1 ]

答案 1 :(得分:2)

这是另一个具有更少代码的版本:

list(map(list, grid_1))

[*map(list, grid_1)]

想法是从每个字符串中获取字符,并将其保留在外部列表中

输出:

[[' ', ' ', '#', '#', ' ', ' ', ' '],
 [' ', '#', '#', '#', '#', ' ', ' '],
 ['#', '#', '#', '#', ' ', ' ', ' '],
 ['#', '#', '#', '#', '#', '#', '#'],
 [' ', '#', '#', '#', ' ', ' ', ' '],
 [' ', '#', '#', ' ', ' ', ' ', ' ']]