如何从每个列表元素的末尾删除换行符[python]

时间:2018-07-21 16:47:17

标签: python list split newline strip

我有以下代码:

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。我该怎么办?

2 个答案:

答案 0 :(得分:2)

您可以按照以下步骤删除“ \ 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)

答案 1 :(得分:1)

在这种情况下,

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.']]