#arrays #python-3.x
#массивы #python-3.x
Вопрос:
Допустим, у меня есть список элементов.
l = ["xf3", "x03", "x8c"] etc.
Теперь я хотел бы объединить элементы внутри моего списка с помощью «». Я пытался r"".join(l)
, но это не сработало.
Ответ №1:
используется для экранирования «специальных» символов, следовательно, строка Python не может заканчиваться единицей
, поскольку она экранирует закрывающую кавычку.
Вы должны избежать этого с помощью второго
, т. Е. '\'.join(l)
Ответ №2:
l = ["xf3", "x03", "x8c"]
'\'.join(l)
Важная часть заключается в том, чтобы экранировать '\'
строки as inn Python:
обратная косая черта «» — это специальный символ, также называемый символом «escape». Он используется для представления определенных пробельных символов: «t» — это табуляция, «n» — это перевод строки, а «r» — это возврат каретки. Также «» может использоваться для экранирования самого себя: «» — буквальный символ обратной косой черты.
Комментарии:
1. О OP уже знают
join
. Их проблема заключалась в том, что они не экранировались так что это должно быть в центре любого соответствующего ответа2. Спасибо за предложение @DeepSpace Я обновил ответ
Ответ №3:
Я предполагаю, что вы на самом деле хотите создать строку, содержащую эти экранированные символы. Самый простой способ, который я могу придумать, это ast.literal_eval
:
>>> import ast
>>> ast.literal_eval("'\" "\".join(l) "'")
'óx03x8c'
Это работает путем первого создания строки из этих строк, соединенных символами обратной косой черты ( xf3x03x8c
), окружения их кавычками и добавления начальной обратной косой черты ( 'xf3x03x8c'
), и, наконец, путем вычисления ее как литерала, чтобы превратить ее из строки длиной 12 в строку длиной 3.