Python从列表中删除特定标记

Juh*_*o M 1 python list

我有这样的清单:

['8 ', '27', '90+1 ','27','90+3','47']
Run Code Online (Sandbox Code Playgroud)

我的目标是得到这样的:

['8', '27','90','27','90','47']
Run Code Online (Sandbox Code Playgroud)

如何从列表中删除"+"标记和下一个数字?

Wil*_*sem 5

您可以使用以下表达式:

[x.split('+',1)[0] for x in data]
Run Code Online (Sandbox Code Playgroud)

使用data原始列表:

>>> [x.split('+',1)[0] for x in data]
['8 ', '27', '90', '27', '90', '47']
Run Code Online (Sandbox Code Playgroud)

因此split(),我们使用将字符串转换为子字符串列表,拆分为+.这1是可选的,但会阻止系统创建更多元素.然后我们采取第一个子列表.


Jea*_*bre 5

使用正则表达式删除加号和后续字符听起来是一种合乎逻辑的方式:

import re

l = ['8 ', '27', '90+1 ','27','90+3','47']

newl = [re.sub("\+.*","",x) for x in l]
Run Code Online (Sandbox Code Playgroud)