Простое обнаружение будет включать проверку s[:1] == s[-1:] == '"'
(осторожно формулируя его с помощью нарезки, а не индексации, чтобы избежать исключений, если s
- пустая строка), и условное удаление ровно одной кавычки из каждойend, если каждый присутствует на обоих концах, равен
if s[:1] == s[-1:] == '"':
s = s[1:-1]
В качестве альтернативы подход в ответе @ Magnus, как он говорит, удаляет all начальную и конечную кавычки и делает это безоговорочно;так, например, если s
начинается с трех кавычек, но не заканчивается ни на одном (и во всех других странных случаях, помимо ваших спецификаций, как указано), фрагмент моего ответа не изменит s
, @ Magnus's отбросит три ведущие кавычки.
«Вы платите свои деньги и делаете свой выбор» ... если вам все равно, так или иначе (то есть вы уверены, что ситуация, когдаэти два ответа отличаются "абсолютно и совершенно невозможно" ...), тогда я думаю, что подход @Magnus на более высоком уровне абстракции более аккуратен (но это вопрос стиля - и его подход, и мой - правильные решения Python, когда выне заботятся о несоответствующих или несбалансированных кавычках; -).