Одна из распространенных проблем, с которыми может столкнуться разработчик на 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)
Такой подход исключает выполнение вредоносного кода, который может быть встроен в строку. Вместе с тем, он позволяет безопасно преобразовывать строковые представления списка в реальные списки.
Добавить комментарий