Какие есть способы преобразовать строку в список?

У меня есть строка:

'[1 , 2, 3, 4]'

как я могу преобразовать ее в список?

arr=[1,2,3,4]

Ответы (3 шт):

Автор решения: gil9red

Я бы сделал через ast.literal_eval

Пример:

import ast

text = '[1 , 2, 3, 4]'
items = ast.literal_eval(text)
print(type(items), items)
# <class 'list'> [1, 2, 3, 4]
→ Ссылка
Автор решения: Sergey K.

Можно десериализовать с помощью модуля json.

import json

s = '[1 , 2, 3, 4]'
arr = json.loads(s)

Так как эта запись массива полностью совместима с форматом json'а, то проблем не возникнет. И это намного безопаснее и эффективнее, чем использовать eval или парсить самому.

→ Ссылка
Автор решения: SergFSM

или можно попробовать через регулярку:

from re import findall
arr = [int(i) for i in findall(r'\d+',text)]
→ Ссылка