我有一个这样的列表:
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 = [[' ', '#', '#', ' ', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' ']]
任何建议都值得赞赏。谢谢!
答案 0 :(得分:3)
good_grid = [ list(row) for row in grid_1 ]
答案 1 :(得分:2)
这是另一个具有更少代码的版本:
list(map(list, grid_1))
或
[*map(list, grid_1)]
想法是从每个字符串中获取字符,并将其保留在外部列表中
输出:
[[' ', ' ', '#', '#', ' ', ' ', ' '],
[' ', '#', '#', '#', '#', ' ', ' '],
['#', '#', '#', '#', ' ', ' ', ' '],
['#', '#', '#', '#', '#', '#', '#'],
[' ', '#', '#', '#', ' ', ' ', ' '],
[' ', '#', '#', ' ', ' ', ' ', ' ']]