python 2.7 раздвоение - PullRequest
       7

python 2.7 раздвоение

0 голосов
/ 23 января 2020

Я пытаюсь написать функцию, которая принимает список в качестве параметра и удаляет символ новой строки '\ n' из каждого члена списка ввода

Подход 1:

def remove_newline_list (lst):
        for i in (range(len(lst))):
                lst[i] = lst[i].split()[0]
print lst

отпечатков:

['orcl', 'orcl112']

Подход 2:

def remove_newline_list (lst):
        for i in (range(len(lst))):
                lst[i] = lst[i].split('\n')[0]

print lst

отпечатки:

['o', 'r', 'c', 'l', 'o', 'r', 'c', 'l' , '1', '1', '2']

Может кто-нибудь объяснить мне, как я могу явно разделить текст в '\ n', используя второй подход

, т.е. Я хочу явно указать символ '\ n' в качестве разделителя, чтобы он не разделялся на другие пробелы

Ответы [ 3 ]

0 голосов
/ 23 января 2020

Это будет работать

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


lst = ['a\n', 'b', 'c\n']

for index, char in enumerate(lst):
  lst[index] = char.strip('\n')
print(lst)
0 голосов
/ 23 января 2020
def remove_newline_list (lst):

  temp_list = []

  for item in lst:
    temp_list.append(item.strip('\n'))

  return temp_list



mylist = [ 'jane\n' , 'doe\n' , 'richard\n' , 'stallman\n']

print(mylist)

print(remove_newline_list(mylist))



['jane\n', 'doe\n', 'richard\n', 'stallman\n']
['jane', 'doe', 'richard', 'stallman']
0 голосов
/ 23 января 2020

Просто создайте себе новый список:

lst = ['a\n', 'b', 'c\n']
new_lst = [item.rstrip() for item in lst]

Или - используя map:

new_lst = list(map(str.rstrip, lst))

Оба приведут к

['a', 'b', 'c']
...