从嵌套列表中删除所有元素



如何从嵌套列表中删除所有元素

我有一个列表

exlines =  ['BT--45', 'BX--W45']

和嵌套列表

Node= ['BSTP12', 'F5 Inc.', '24 hours ago'],
['BX--34', 'F5 Inc.', '24 hours ago'],
['QDVPLF', 'F5 Inc.', '24 hours ago'],   
['BT--89', 'F5 Inc.', 'Directory exists'], 
['BEFWL01', 'CP Ltd', '7 days ago'], 
['BEFWL02', 'CP Ltd', '7 days ago'], 
['BEFWL01', 'CP Ltd', '7 days ago'], 
['BEFWL02', 'CP Ltd', '7 days ago'], 
['MWL03', 'CP Ltd', '7 days ago'], 
['MWL04', 'CP Ltd', '7 days ago'], 
['BEWL01', 'CP Ltd', 'directory'], 
['BEWL02', 'CP Ltd', 'directory'], 
['BEIPT01', 'CP Ltd', 'directory'], 
['BEIPT02', 'CP Ltd', 'directory'], 
['MADP03', 'CP Ltd', 'directory'], 
['MADP04', 'CP Ltd', 'directory'], 
['NLBX--D2', 'CP', 'Directory exists'], 
['NLBT--D1', 'CP', 'Directory exists'], 
['BT--45', 'CP', 'Directory exists'], 
['NLBT--DW2', 'CP', 'Directory exists'], 
['NLBX--DW1', 'CP', 'Directory exists'], 
['BX--45', 'CP', 'Directory exists']
for regel in exlines:
nested_remove(Node, regel)
def nested_remove(L, x):
if x in L
L.remove(x)
else:
for element in L:
if type(element) is list:
nested_remove(element, x)

这只删除了BT—45(BX - 45),但不包含"CP"one_answers"Directory exists">

这些行必须从Node

中删除
['BT--45', 'CP', 'Directory exists'], 
['BX--45', 'CP', 'Directory exists']

这看起来很简单。让我们使用列表推导来生成一个新的列表,其中不包含您想要避免的子列表。

exlines =  ['BT--45', 'BX--W45']
Node = [
['BSTP12', 'F5 Inc.', '24 hours ago'],
['BX--34', 'F5 Inc.', '24 hours ago'],
['QDVPLF', 'F5 Inc.', '24 hours ago'],   
['BT--89', 'F5 Inc.', 'Directory exists'], 
['BEFWL01', 'CP Ltd', '7 days ago'], 
['BEFWL02', 'CP Ltd', '7 days ago'], 
['BEFWL01', 'CP Ltd', '7 days ago'], 
['BEFWL02', 'CP Ltd', '7 days ago'], 
['MWL03', 'CP Ltd', '7 days ago'], 
['MWL04', 'CP Ltd', '7 days ago'], 
['BEWL01', 'CP Ltd', 'directory'], 
['BEWL02', 'CP Ltd', 'directory'], 
['BEIPT01', 'CP Ltd', 'directory'], 
['BEIPT02', 'CP Ltd', 'directory'], 
['MADP03', 'CP Ltd', 'directory'], 
['MADP04', 'CP Ltd', 'directory'], 
['NLBX--D2', 'CP', 'Directory exists'], 
['NLBT--D1', 'CP', 'Directory exists'], 
['BT--45', 'CP', 'Directory exists'], 
['NLBT--DW2', 'CP', 'Directory exists'], 
['NLBX--DW1', 'CP', 'Directory exists'], 
['BX--45', 'CP', 'Directory exists']]
[sublist for sublist in Node
if not any(ex in sublist for ex in exlines)]

结果:

[['BSTP12', 'F5 Inc.', '24 hours ago'], 
['BX--34', 'F5 Inc.', '24 hours ago'], 
['QDVPLF', 'F5 Inc.', '24 hours ago'],
['BT--89', 'F5 Inc.', 'Directory exists'],
['BEFWL01', 'CP Ltd', '7 days ago'],
['BEFWL02', 'CP Ltd', '7 days ago'],
['BEFWL01', 'CP Ltd', '7 days ago'],
['BEFWL02', 'CP Ltd', '7 days ago'],
['MWL03', 'CP Ltd', '7 days ago'],
['MWL04', 'CP Ltd', '7 days ago'],
['BEWL01', 'CP Ltd', 'directory'],
['BEWL02', 'CP Ltd', 'directory'],
['BEIPT01', 'CP Ltd', 'directory'],
['BEIPT02', 'CP Ltd', 'directory'],
['MADP03', 'CP Ltd', 'directory'],
['MADP04', 'CP Ltd', 'directory'],
['NLBX--D2', 'CP', 'Directory exists'],
['NLBT--D1', 'CP', 'Directory exists'],
['NLBT--DW2', 'CP', 'Directory exists'],
['NLBX--DW1', 'CP', 'Directory exists'],
['BX--45', 'CP', 'Directory exists']]