[英]Taking out the last letter of some items in a list
我有一个如下列表:
['Singh Sumer',
'Li Sheng\n',
'Hahn Vanessa',
'Ruiter Dana',
'Kleinbauer Thomas',
'Klakow Dietrich\n',
'Caselli Tommaso']
一些成员最后有'\n'。 我想删除它们并将它们作为列表的以下成员。
所以,我想把它作为 output:
['Singh Sumer',
'Li Sheng',
'\n',
'Hahn Vanessa'
'Ruiter Dana',
'Kleinbauer Thomas',
'Klakow Dietrich',
'\n',
'Caselli Tommaso']
我试图获取末尾有 '/n' 的成员的索引,并将 '/n' 插入到这些索引中。 但是当我使用插入 function 时,它用列表中的其他成员替换了它们。 有什么建议么?
re.split with lookahead 返回一个包含单词和换行符(如果存在)的列表,或者只是单词
import re
lst = [
'Singh Sumer',
'Li Sheng\n',
'Hahn Vanessa',
'Ruiter Dana',
'Kleinbauer Thomas',
'Klakow Dietrich\n',
'Caselli Tommaso'
]
r = []
for s in lst:
r.extend(re.split(r'(?=\n)', s))
print(r)
这很容易,但您必须记住,“\n”被视为单个字符,因此您必须将其视为只有 1 个字母。
你可以这样做:
elements = ['Singh Sumer',
'Li Sheng\n',
'Hahn Vanessa',
'Ruiter Dana',
'Kleinbauer Thomas',
'Klakow Dietrich\n',
'Caselli Tommaso']
output = []
for index, element in enumerate(elements):
output.append(element.strip())
if element[-1:] == "\n":
output.insert(index+1, "\n")
print (output)
output 是:
['Singh Sumer', 'Li Sheng', '\n', 'Hahn Vanessa', 'Ruiter Dana', 'Kleinbauer Thomas', '\n', 'Klakow Dietrich', 'Caselli Tommaso']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.