[英]Remove all elements from a nested list
如何從嵌套列表中刪除所有元素。
我有一個清單
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”和“目錄存在”
此行必須從節點中刪除
['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']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.