Как удалить \ n из элемента списка? - PullRequest
62 голосов
/ 03 октября 2010

Я пытаюсь получить Python для строки чтения из файла .txt и записать элементы первой строки в список.Элементы в файле были разделены табуляцией, поэтому я использовал split("\t") для разделения элементов.Поскольку в файле .txt много элементов, я сохранил данные, найденные в каждой строке, в отдельный список.

Проблема, с которой я столкнулся на данный момент, заключается в том, что каждый список отображается так:1006 * Как мне удалить \n из последнего элемента списка и сделать его просто '7.3'?

Ответы [ 15 ]

0 голосов
/ 18 февраля 2019
new_list = ['Name1', '7.3', '6.9', '6.6', '6.6', '6.1', '6.4', '7.3\n']
for i in range(len(new_list)):
    new_list[i]=new_list[i].replace('\n','')
print(new_list)

Вывод будет таким

['Name1', '7.3', '6.9', '6.6', '6.6', '6.1', '6.4', '7.3']
0 голосов
/ 29 декабря 2017

Поскольку вопрос OP касается удаления символа новой строки из последнего элемента, я бы сбросил его с помощью the_list[-1].rstrip():

>>> the_list = ['Name1', '7.3', '6.9', '6.6', '6.6', '6.1', '6.4', '7.3\n']
>>> the_list[-1] = ls[-1].rstrip()
>>> the_list
['Name1', '7.3', '6.9', '6.6', '6.6', '6.1', '6.4', '7.3']

Это O (1).

0 голосов
/ 26 апреля 2017

Для обработки многих разделителей новой строки, включая комбинации символов, такие как \r\n, используйте splitline . Объедините объедините и разделительные линии , чтобы удалить / заменить все новые строки из строки s:

''.join(s.splitlines())

Чтобы удалить ровно один завершающий символ новой строки, передайте True в качестве аргумента keepends, чтобы сохранить разделители, удаляя только разделители в последней строке:

def chomp(s):
    if len(s):
        lines = s.splitlines(True)
        last = lines.pop()
        return ''.join(lines + last.splitlines())
    else:
        return ''
0 голосов
/ 20 ноября 2015

У меня была эта проблема, и я решил ее с помощью функции chomp, описанной выше:

def chomp(s):
    return s[:-1] if s.endswith('\n') else s

def trim_newlines(slist):
    for i in range(len(slist)):
        slist[i] = chomp(slist[i])
    return slist
.....
names = theFile.readlines()
names = trim_newlines(names)
....
0 голосов
/ 28 декабря 2014

Это работает, чтобы убрать \n (новую строку) из элемента в списке он просто удаляет первый элемент в строке

def remove_end(s):
    templist=[]
    for i in s:
        templist.append(i)
    return(templist[0])
...