Как я могу преобразовать эту строку в список списков? [дубликат]

8
задан Bhargav Rao 20 June 2015 в 05:40
поделиться

6 ответов

Он немного более гибкий, чем у Satoru, и не использует никаких библиотек. Тем не менее, это не будет работать с более глубоко вложенными списками. Для этого, я думаю, вам понадобится рекурсивная функция (или цикл) или eval.

str = "[[0,0,0],[0,0,1],[1,1,0]]"
strs = str.replace('[','').split('],')
lists = [map(int, s.replace(']','').split(',')) for s in strs]

lists теперь содержит список нужных вам списков.

1
ответ дан 5 December 2019 в 04:41
поделиться
>>> import ast
>>> ast.literal_eval('[[0,0,0], [0,0,1], [1,1,0]]')
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]

Для кортежей

>>> ast.literal_eval('[(0,0,0), (0,0,1), (1,1,0)]')
[(0, 0, 0), (0, 0, 1), (1, 1, 0)]
23
ответ дан 5 December 2019 в 04:41
поделиться
>>> import json
>>> json.loads('[[0,0,0], [0,0,1], [1,1,0]]')
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
22
ответ дан 5 December 2019 в 04:41
поделиться
>>> import re    
>>> list_strs = re.findall(r'\[\d+\,\d+\,\d+\]', s)
>>> [[[int(i)] for i in l[1:-1].split(',')] for l in list_str]
0
ответ дан 5 December 2019 в 04:41
поделиться
>>> string='[[0,0,0], [0,0,1], [1,1,0]]'
>>> eval(string)
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
>>> a=eval(string)
>>> a
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]

перед передачей строки в eval () сначала выполните необходимую дезинфекцию.

-3
ответ дан 5 December 2019 в 04:41
поделиться

[[int (i) для i в x.strip ("[]"). Split (",")] для x в s.strip ('[]'). Split ("], ")]

понимание списка в понимании списка ... но это растопит ваш мозг

1
ответ дан 5 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: