разбирать строку в квадратных скобках с аргументами - PullRequest
0 голосов
/ 22 марта 2020

Мне нужно проанализировать некоторые строки в списках переменных функций.

У меня может быть простая строка, такая как vars = '3,5,1'

Я анализирую ее, используя args = [int(arg) if arg.isdigit() else arg for arg in vars.split(',')]

Однако я могу получить строку, такую ​​как vars = [1, 2, 5, 4], 1, 5

И я хочу, чтобы мой результат был [[1,2,5,4],1,5]

Как я могу изменить мой анализ для поддержки этого случая?

Ответы [ 2 ]

1 голос
/ 22 марта 2020
import ast
print(list(ast.literal_eval(vars)))
1 голос
/ 22 марта 2020

Вы можете использовать встроенный модуль ast:

import ast
result = ast.literal_eval(f'[{vars}]')

Это будет трактовать vars как обычный литерал списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...