2016-04-05 2 views
1

У меня есть эта строка:Python строки в список 2D

[0, 0], [1, 7], [2, 1], [3, 1], [4, 4], [5, 3], [6, 0], [7, 0], [8, 0], [9,0], 
[10, 0], [11, 0], [12, 0], [13, 0], [14, 0], [15, 0], [16, 0], [17, 0], 
[18,0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 0], [25, 0], 
[26, 0], [27, 0], [28, 0], [29, 0], [30, 0] 

и мне нужно, чтобы преобразовать его в 2D список

Можете ли вы мне помочь ?, Я попытался с string.split(), но я могу» t найти правильную комбинацию.

Большое спасибо.

+0

Что вы имеете в виду 2D списке? что-то вроде [[0, 0], [1, 7], ...]? – Francesco

+0

вы правы Francesco – Madmartigan

+0

Тогда ответ, связанный с @DrHaze, сделает трюк. просто не забудьте преобразовать literal_eval в список, так как ваша строка не представляет собой действительный 2D-список – Francesco

ответ

3

Вы можете использовать literal_eval и list сделать это:

import ast 

s = "[0, 0], [1, 7], [2, 1], [3, 1], [4, 4], [5, 3], [6, 0], [7, 0], [8, 0], [9,0],[10, 0], [11, 0], [12, 0], [13, 0], [14, 0], [15, 0], [16, 0], [17, 0], [18,0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 0], [25, 0], [26, 0], [27, 0], [28, 0], [29, 0], [30, 0]" 

l = list(ast.literal_eval(s)) 

Выход:

>>> l 
[[0, 0], [1, 7], [2, 1], [3, 1], [4, 4], [5, 3], [6, 0], [7, 0], [8, 0], [9, 0], [10, 0], [11, 0], [12, 0], [13, 0], [14, 0], [15, 0], [16, 0], [17, 0], [18, 0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 0], [25, 0], [26, 0], [27, 0], [28, 0], [29, 0], [30, 0]] 
Смежные вопросы