python: перевод списка строк и чисел в строку с экранированием символов

Рейтинг: 0Ответов: 1Опубликовано: 28.03.2023

есть список в котором содержатся строки и числа вида

arr = ['text1', "text2", 11, 15, 'text3']

на выходе требуется получить строку вида 'text1', 'text2', 11, 15, 'text3'

при этом символ ' должен быть заэкранирован

подскажите, можно ли это сделать одной командой (условно в 1 строку) или надо писать код вида:

q = ', '.join([str(elem) if type(elem) == int else "'" + elem.replace('\'', '\\\'') + "'" for elem in arr])

Ответы

▲ 1

Можно так, используя функцию repr:

arr = ['text1', "text2", 11, 15, 'text3']
result = ', '.join(list(map(repr, arr)))
print(repr(result))

Выводит:

"'text1', 'text2', 11, 15, 'text3'"