簡體   English   中英

從嵌套列表中刪除所有元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM