Преобразование строки в список Python

Преобразование строки в список Python

У меня есть строка типа 'string1,string2,string3'

Я хочу преобразовать то же самое в ["string1","string2","string3"]

Я пробовал использовать

sed 's/\(,\)/"\1"/g'

Но он возвращаетсяstring1","string2","string3

решение1

Поскольку вы уже можете вставлять кавычки вокруг запятых, просто добавьте ["and "]в начале и в конце:

sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'

Пример:

$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]

решение2

Вот чистое решение на bash:

$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

Поскольку этот подход не требует никаких внешних утилит и подпроцессов, он должен быть быстрым.

Как это работает

Мы используем bashзамена шаблоначтобы заменить все запятые на ",". Поскольку "это активный символ оболочки, мы должны экранировать его в команде:

$ echo ${str//,/\",\"}
string1","string2","string3

Последний шаг — добавить ["к началу и "]концу строки. Таким образом:

$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

Связанный контент