07 Июл 2023
2 мин
2602

Как преобразовать строковое представление списка в список в Python

Одна из распространенных проблем, с которыми может столкнуться разработчик на Python, заключается в необходимости преобразовать строку, представляющую

Содержание

Одна из распространенных проблем, с которыми может столкнуться разработчик на Python, заключается в необходимости преобразовать строку, представляющую собой список, обратно в список. Например, есть строка, которая выглядит как список:

x = '[ "A","B","C" , " D"]'

И требуется преобразовать ее в реальный список, учитывая пробелы между элементами и внутри кавычек:

x = ["A", "B", "C", "D"]

Использование встроенной функции eval()

Самым простым и прямолинейным способом преобразования строки, представляющей список, в реальный список является использование встроенной функции Python eval(). Эта функция анализирует строку и выполняет ее как выражение Python.

x = '[ "A","B","C" , " D"]'
x = eval(x)

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

Использование модуля ast

Более безопасным способом преобразования строкового представления списка в список является использование функции literal_eval() из модуля ast. Эта функция анализирует строку и выполняет ее как выражение Python, но с ограничением только на простые типы данных, такие как числа, строки, списки, кортежи и словари.

import ast

x = '[ "A","B","C" , " D"]'
x = ast.literal_eval(x)

Такой подход исключает выполнение вредоносного кода, который может быть встроен в строку. Вместе с тем, он позволяет безопасно преобразовывать строковые представления списка в реальные списки.

Содержание

Добавить комментарий

Определи профессию по рисунку