Объединение элементов в списке на основе условия

#python #list #merge

#python #Список #слияние

Вопрос:

У меня есть список, который выглядит так:

 a = ["/n abc", "def", "ghi", "/n jkl", "mno", "/n pqr", "/n stu"]
 

Я хочу, чтобы это выглядело так:

 a = ["abcdefghi", "jklmno" "pqr" "stu"] 
 

По сути, я хочу, чтобы код последовательно объединял элементы в списке с элементом ниже, пока не встретит элемент с подстрокой «/ n». Он должен сделать это для всего списка, а затем удалить все экземпляры подстроки «/ n »

Комментарии:

1. Попробуйте ''.join(a).replace('/n', '').split()

2. это действительно /n или это ошибка и у вас есть n ?

Ответ №1:

 result = [i.strip() for i in ''.join(a).split('/n') if i]
 

Однако сначала вы должны опубликовать свою попытку.

Комментарии:

1. первым элементом в результате будет пустой str — ''

Ответ №2:

Вот моя попытка:

 res = []
s = ""
for i in l:
    if i.startswith("/n"):
        if s:
            res.append(s)
        s = i[3:]
    else:
        s =i
if s:
    res.append(s)
print(res)
 

Ответ №3:

Один простой способ (без использования специальных методов):

 result = []
i = 0
index = 0
while i < len(a):
    if a[i][:2] == 'n':
        index  = 1
    result[index]  = a[i]
 

Пожалуйста, поправьте меня, если я сделал что-то не так (прошло много времени с тех пор, как я использовал Python).