У меня есть строка Python (str), то есть "['Fish & Chips', 'Fast Food', 'Restaurants']".

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

-2
Jachin 26 Фев 2018 в 02:07

2 ответа

Лучший ответ

Изменить : см. snakecharmerb для получения более безопасной альтернативы eval().


Похоже, вы ищете eval(), который принимает строку и оценивает ее как выражение Python:

s = "['Fish & Chips', 'Fast Food', 'Restaurants']"

eval(s)
# ['Fish & Chips', 'Fast Food', 'Restaurants']

type(eval(s))
# list
1
Brad Solomon 13 Июн 2021 в 18:51

Хотя eval работает, безопаснее использовать ast.literal_eval, если входные данные не являются надежными:

>>> import ast
>>> s = "['Fish & Chips', 'Fast Food', 'Restaurants']"
>>> ast.literal_eval(s)
['Fish & Chips', 'Fast Food', 'Restaurants']
1
snakecharmerb 13 Июн 2021 в 18:37