大家好,我是编程新手,我遇到了这个问题:
我想修改列表中的字符串,更确切地说,如果该子字符串存在于另一个字符串列表中,则删除该子字符串。我已经尝试过此解决方案,但是不起作用。
res=[]
a=['ACTGACTG','ACTGAAA','AGGGAGGG','Ernesto','AAGGACTG','X']
b=['ACTG','AA','X']
for x in a:
for y in b:
if y in x:
res.append(x.replace(y,''))
print(res)
输出:
['', 'AAA', 'ACTGA', 'AAGG', 'GGACTG', '']
现在这个问题很少了
我希望结果中出现'Ernesto'和'AGGGAGGG',即使b中没有匹配项
ACTG在第一个输出中匹配2次,因此两次都被擦除了,我想一次被擦除,这样所需的输出就可以了
X被删除了,但是我得到了一个空字符串,我只是不想输入
所需的输出将是
['ACTG', 'A', 'AGGGAGGG', 'Ernesto', 'GG']
答案 0 :(得分:0)
您在正确的轨道上,只需添加要用新的子字符串替换旧的子字符串的次数即可。
然后仅在字符串不为空时添加新字符串
for x in a:
for y in b:
x = x.replace(y,'',1)
if x:
res.append(x)