#python #regex
Вопрос:
У меня есть список строк, подобных этой:
[ "sentence_1", 'sentence_2 of "me"']
Я бы хотел, чтобы это:
[ "sentence_1", "sentence_2 of 'me'"]
или:
[ "sentence_1", "sentence_2 of me"]
Я пробовал регулярное выражение, но оно не работает:
for i in list:
i.replace({'"':''}, regex=True).replace({"'":' '}, regex=True)
Я не знаю, как это решить
Комментарии:
1. Нет необходимости в регулярных выражениях. Вы не присваиваете результат
str.replace()
. Строки неизменяемы;str.replace()
метод возвращает новыйstr
объект, и вы ничего не делаете с этой возвращаемой строкой.2. Являются ли начальные/конечные кавычки на самом деле частью строки?
3. @john-гордон начальные/конечные кавычки не являются частью строки
Ответ №1:
Если вы хотите полностью избавиться от кавычек, вы можете это сделать
mylist = [ "sentence_1", 'sentence_2 of "me"']
[x.replace('"', '').replace("'", '') for x in mylist]
который использует понимание списка для удаления всех одинарных и двойных кавычек и приводит к
['sentence_1', 'sentence_2 of me']
Если вы хотите заменить все двойные кавычки одинарными кавычками,
[x.replace('"', "'") for x in mylist]
будет возвращать
['sentence_1', "sentence_2 of 'me'"]