如何从字符串中删除特定数字?

时间:2018-07-31 22:05:09

标签: python

代码如下:

aList = ['0.01', 'xyz', 'J0.01', 'abc', 'xyz'];
aList.remove('0.01');
print("List : ", aList)

这是输出: 列表:

['xyz', 'J0.01', 'abc', 'xyz']

如何删除附加在“ J0.01”上的0.01?我想保留J。感谢您的宝贵时间! =)

3 个答案:

答案 0 :(得分:3)

好像你想要的

aList = ['0.01', 'xyz', 'J0.01', 'abc', 'xyz'];
>>> [z.replace('0.01', '') for z in aList]

['', 'xyz', 'J', 'abc', 'xyz']

如果您还想删除空字符串/空格,

>>> [z.replace('0.01', '') for z in aList if z.replace('0.01', '').strip()]
['xyz', 'J', 'abc', 'xyz']

答案 1 :(得分:2)

使用re模块:

import re

aList = ['0.01', 'xyz', 'J0.01', 'abc', 'xyz'];    
print([i for i in (re.sub(r'\d+\.?\d*$', '', i) for i in aList) if i])

打印:

['xyz', 'J', 'abc', 'xyz']

编辑:

正则表达式替换re.sub(r'\d+\.?\d*$', '', i)将用空格后的每个数字替换点(可选),然后用任意数量的数字替换空字符串。 $表示数字应位于字符串的末尾。

所以。例如以下匹配项有效:"0.01""0.""0"external site here上的说明。

答案 2 :(得分:0)

类似的方法可以工作:

l = ['0.01', 'xyz', 'J0.01', 'abc', 'xyz']
string = '0.01'
result = []
for x in l :
    if string in x:
        substring = x.replace(string,'')
        if substring != "":
            result.append(substring)
    else:
        result.append(x)

print(result)

尝试一下,问候。