Контекст проблемы
Я пытаюсь создать набор данных журнала чата из чатов WhatsApp.Позвольте мне предоставить контекст той проблемы, которую я пытаюсь решить.Предположим, что сообщение M
, а ответ R
.Естественный способ, которым происходят чаты, не всегда чередуется, например, чаты, как правило, происходят так:
[ M, M, M, R, R, M, M, R, R, M ... and so on]
Я пытаюсь объединить постоянно встречающиеся строки M и R.для приведенного выше примера я хочу вывод, подобный этому
Требуемый вывод
[ "M M M", "R R", "M M" , "R R", "M ... and so on ]
Пример реалистичных данных:
Input --> ["M: Hi", "M: How are you?", "R: Heyy", "R: Im cool", "R: Wbu?"] (length=5)
Output --> ["M: Hi M: How are you?", "R: Heyy R: Im cool R: Wbu?"] (length = 2)
Существует ли быстрый и более эффективный способделая это?Я уже прочитал эту ссылку Stackoverflow , чтобы решить эту проблему.Но я не нашел там решения.
Пока что это то, что я пробовал .
final= []
temp = ''
change = 0
for i,ele in enumerate(chats):
if i>0:
prev = chats[i-1][0]
current = ele[0]
if current == prev:
continuous_string += chats[i-1]
continue
else:
continuous_string += chats[i-1]
final.append(temp)
temp = ''
Объяснение моего кода: У меня есть список chats
, в котором начальный символ каждого сообщения - «M», а начальный символ каждого ответа - «R».Я отслеживаю значения prev
и current
в списке, и когда происходит изменение (переход от M -> R или R -> M), я добавляю все, что собрано в continuous_string
к final
list.
Опять же, мой вопрос: Есть ли в Python ярлык или функция, позволяющая эффективно делать то же самое в меньшем количестве строк?