Думаю, я решил вашу проблему замены регулярным выражением. Возможно, вам придется изменить sh данный фрагмент кода в соответствии с вашими потребностями.
Если я правильно понял вопрос, уловка заключалась в том, чтобы использовать регулярное выражение для поиска подходящего места для замены.
match = re.findall(r"\'(.+?)\'", k) #here k is an element in list.
Размещение скелетного кода для справки:
import re
l = ["This is","'the first 'string","and 'it is 'good"]
#declare output
for k in l:
match = re.findall(r"\'(.+?)\'", k)
if not match:
#append k itself to your output
else:
p = (str(match).replace(' ', '|space|'))
#append p to your output
Я еще не тестировал его, но он должен работать. Сообщите мне, если у вас возникнут проблемы с этим.