如何从每个列表元素的结尾和开头删除换行符 [python]

How to remove newline from end and beginning of every list element [python]

我有以下代码:

from itemspecs import itemspecs
x = itemspecs.split('#@#')
res = []
for item in x:
    res.append(item.split('##'))
print(res)

这将从另一个文档导入字符串。并给我以下信息:

[['\n1\nWie was de Nederlandse scheepvaarder die de Spaanse zilvervloot veroverde?\n',
  '\nA. Michiel de Ruyter\nB. Piet Heijn\nC. De zilvervloot is nooit door de Nederlanders
 onderschept\n', '\nB\n', '\nAntwoord B De Nederlandse vlootvoogd werd hierdoor bekend.\n'], 
['\n2\nIn welk land ligt Upernavik?\n', '\nA. Antartica\nB. Canada\nC. Rusland\nD. 
Groenland\nE. Amerika\n', '\nD\n', '\nAntwoord D Het is een dorp in Groenland met 1224 
inwoners.\n']]

但现在我想从该列表中每个元素的每个结尾和开头删除所有 \n。我该怎么做?

您可以通过如下方式去除“\n”来做到这一点

a = "\nhello\n"
stripped_a = a.strip("\n")

所以,您需要做的是遍历列表,然后在字符串上应用条带,如下所示

res_1=[]
for i in res:
    tmp=[]
    for j in i:
        tmp.append(j.strip("\n"))
    res_1.append(tmp)

上面的答案只是从开头和结尾删除了 \n 。如果你想删除字符串中的所有新行,只需使用 .replace('\n"," ") 如下所示

res_1=[]
for i in res:
    tmp=[]
    for j in i:
        tmp.append(j.replace("\n"))
    res_1.append(tmp)

strip() 在这种情况下是最简单的方法,但是如果你以后想进行任何高级文本处理,学习正则表达式是个不错的主意:

import re
from pprint import pprint

l = [['\n1\nWie was de Nederlandse scheepvaarder die de Spaanse zilvervloot veroverde?\n',
'\nA. Michiel de Ruyter\nB. Piet Heijn\nC. De zilvervloot is nooit door de Nederlandersonderschept\n',
'\nB\n',
'\nAntwoord B De Nederlandse vlootvoogd werd hierdoor bekend.\n'],

['\n2\nIn welk land ligt Upernavik?\n',
'\nA. Antartica\nB. Canada\nC. Rusland\nD.Groenland\nE. Amerika\n',
'\nD\n', '\nAntwoord D Het is een dorp in Groenland met 1224inwoners.\n']]


l = [[re.sub(r'^([\s]*)|([\s]*)$', '', j)] for i in l for j in i]
pprint(l, width=120)

输出:

[['1\nWie was de Nederlandse scheepvaarder die de Spaanse zilvervloot veroverde?'],
 ['A. Michiel de Ruyter\nB. Piet Heijn\nC. De zilvervloot is nooit door de Nederlandersonderschept'],
 ['B'],
 ['Antwoord B De Nederlandse vlootvoogd werd hierdoor bekend.'],
 ['2\nIn welk land ligt Upernavik?'],
 ['A. Antartica\nB. Canada\nC. Rusland\nD.Groenland\nE. Amerika'],
 ['D'],
 ['Antwoord D Het is een dorp in Groenland met 1224inwoners.']]