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

2024-04-30 01:16:51 发布

您现在位置: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 = [[' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' '],
              [' ', '#', '#', ' ', ' ', ' ', ' ']]

任何建议都将不胜感激。谢谢


Tags: innone元素列表forlen错误range
2条回答
good_grid = [ list(row) for row in grid_1 ]

下面是另一个代码更少的版本:

list(map(list, grid_1))

[*map(list, grid_1)]

其思想是从单独列表中的每个字符串中获取字符,并将所有这些列表保存在外部列表中

输出:

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

相关问题 更多 >