如何遍历字符串列表并根据另一个列表Python修改每个字符串

时间:2020-09-29 20:13:04

标签: python list

大家好,我是编程新手,我遇到了这个问题:

我想修改列表中的字符串,更确切地说,如果该子字符串存在于另一个字符串列表中,则删除该子字符串。我已经尝试过此解决方案,但是不起作用。

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', '']

现在这个问题很少了

  1. 我希望结果中出现'Ernesto'和'AGGGAGGG',即使b中没有匹配项

  2. ACTG在第一个输出中匹配2次,因此两次都被擦除了,我想一次被擦除,这样所需的输出就可以了

  3. X被删除了,但是我得到了一个空字符串,我只是不想输入

所需的输出将是

['ACTG', 'A', 'AGGGAGGG', 'Ernesto', 'GG']

1 个答案:

答案 0 :(得分:0)

您在正确的轨道上,只需添加要用新的子字符串替换旧的子字符串的次数即可。

然后仅在字符串不为空时添加新字符串

for x in a:
    for y in b:
        x = x.replace(y,'',1)
    if x:
        res.append(x)