#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).