如何从字符串列表中删除子字符串列表
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']
我可以找到很多关于从字符串中删除子字符串列表的建议,但很少/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']