Amigun
@Amigun
Джун : |

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

У меня есть строка: ['Первое, 'Второе', 'Третье', 'Четвертое']
Но я не могу вызвать какой либо элемент, например 2 элемент
Как преобразовать эту строку в список? Чтобы я мог вызывать элементы

Версия python - 3.7.3
  • Вопрос задан
  • 13615 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Как преобразовать эту строку в список? Чтобы я мог вызывать элементы

например 2 элемент

>>> import json
>>> str1 = "['Первое', 'Второе', 'Третье', 'Четвертое']"
>>> json.loads(str1.replace("'", '"'))[1]
'Второе'


P.S. В оригинале у вас не совсем корректный список в строке - "Первое" не закрывается кавычкой.
['Первое, 'Второе', 'Третье', 'Четвертое']
Если это не "бага а фича" . - то нужны дополнительные шаги для приведения списка к корректному виду.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Zotik204783
str = "['Первое', 'Второе', 'Третье', 'Четвертое']"
lst = eval(str)
print(lst[1])
Ответ написан
Комментировать
@undisclosed
Если у вас именно строка задается в таком виде: "['Первое, 'Второе', 'Третье', 'Четвертое']", то можно разделить ее по разделителю ", " и получить список элементов с кавычками в таком виде:
["['Первое", "'Второе'", "'Третье'", "'Четвертое']"]

А затем обрезать ненужные символы с обоих концов элемента с помощью метода strip().
В результате получим список из элементов, без лишних символов, к которым можно обращаться по номеру.
Все это делается одной строкой кода - list comprehension.
Пример кода:
string = "['Первое, 'Второе', 'Третье', 'Четвертое']"
res = [element.strip("'[]") for element in string.split(", ")]
print(res[1])

В ответ выдаст:
Второе
Ответ написан
Комментировать
laviol
@laviol
Кодер-разнорабочий
Получить из строки элементы по заданному шаблону можно довольно просто используя регулярные выражения и встроенную в Python библиотеку re.
Для проверки своего регулярного выражения (с подсказками по их составлению) существует множество онлайн сервисов, достаточно погуглить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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