Не удалось удалить \ n - PullRequest
1 голос
/ 05 августа 2020

Может быть, очень простой ответ, но я не могу избавиться от символа новой строки. У меня есть список, содержащий список, и он выглядит так:

[['US', '  146465', '  146935', '  148012', '  149374', '  150822', '  152055', '  153315', '  154448', '  154862', '  155402\\n\n']]

В конце есть два символа новой строки, и мне нужно избавиться от них. Итак, сначала я повторил мысль, что большой список попадет в подсписок.

for lists in L:

Теперь, когда я там, я хочу получить последний элемент списка, используя list[-1]. * Откуда взялся второй перевод строки go? Итак, я продолжаю, теперь я думаю, что единственное, что нужно сделать, это разделить его по новой строке правильно?:

print(lists[-1].split('\n'))

Мой результат:

['  155402\\n', '']

Что за чертовщина! Теперь перед новой строкой стоит двойной sla sh. Итак, оказывается, я не могу удалить простой символ новой строки: D Итак, на самом деле мой вопрос в том, как мне избавиться от новой строки в списках списка. Любая помощь будет оценена. Спасибо!

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

В последнем элементе списка фактически только один символ новой строки, а не два. Backsla sh «экранирует» символ новой строки, поэтому существует только 1. Он не удаляет второй символ новой строки, потому что второго символа новой строки нет. Измените ' 155402\\n\n' на ' 155402\n\n', если хотите 2 перевода строки.

0 голосов
/ 05 августа 2020

Другой немного другой подход к регулярному выражению - вы можете поймать оба символа новой строки ИЛИ двойную обратную косую черту n:

import re

for lists in L:
    lists[-1] = re.sub('\\\\n|\n', '', lists[-1])

Или из al oop

L[0][-1] = re.sub('\\\\n|\n', '', L[0][-1])
0 голосов
/ 05 августа 2020

Дополнительная \ влияет на раскол. Итак, что вам нужно сделать, это заменить лишний "\" на ""

Попробуйте:

lists[-1].replace("\\\\", "\\").split("\n")

...