如何从字符串列表中删除子字符串列表

How to remove a list of substrings from a list of strings

我可以找到很多关于从字符串中删除子字符串列表的建议,但很少/none关于从字符串列表中删除子字符串列表的建议。

我的数据是这样的:

列表 1:[操作 18 TC 16、TC 20、OP 15 TC 80]

列表 2:[操作 18,,操作 15]

预期结果:最终列表包含:[TC 16、TC 20、TC 80]

我知道我需要考虑空格之类的问题,答案可能很明显/盯着我看,但我似乎无法破解这个问题。

我已经尝试在 for 循环中进行 for 循环,但最终在最终列表中得到了明显的大量值,并且我尝试了我认为可行但没有影响的列表理解。

如果我需要改进问题请告诉我,但请帮助我,因为我卡在这个问题上

试试这个:

lst1 = ['Op 18 TC 16', 'TC 20', 'OP 15 TC 80']
lst2 = ['Op 18', 'OP 15']

result = []
for s1 in lst1:
    tmp = s1
    for s2 in lst2:
        tmp = tmp.replace(s2, '')
    result.append(tmp.strip())

这是结果

>>> result
['TC 16', 'TC 20', 'TC 80']

您可以通过循环第二个数组并从第一个数组中删除项目来实现,如下所示:

listOne = ["Op 18", "Op 18", "TC 16", "TC 20", "OP 15", "TC 80"]
listTwo =  ["Op 18", "OP 15"]

for string in listTwo:
    try:
        while True:
            listOne.remove(string)
    except ValueError:
        pass

print(listOne)
# ['TC 16', 'TC 20', 'TC 80']