代码如下:
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。感谢您的宝贵时间! =)
答案 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)
尝试一下,问候。