#請益 #Python 巢狀dict過濾請教

小妹有一個多層次的dict想要進行過濾,主要過濾的數據儲存於最後一個階層的Record data中。 如果用迴圈遞歸,會花太多效能跟時間,雖然已經寫出來了考量之後維護可讀性,還是希望有辦法能在一開始讀取時就進行過濾,想請教大神做法‎|•'-'•) ✧
megapx
有看過有人做lambda跟filter,但因為跟lambda真的太不熟・ࡇ・,最多也只有看過判定第二階層的數字案例,但我Record data為一組array,並且只需要針對Record data[0,-1]進行判定。(言下之意我努力踹過了啊失敗了阿我看了三個小時的教學啊嗚嗚嗚嗚) 最終目標為把已經是None的dict全部捨棄(往上至階層2、3),但如果難以達成希望至少能將不符合的案例於階層4過濾~ 真的想了好久了嗚嗚嗚拜託各路大神啊我不想要真的疊上5層迴圈阿嗚嗚嗚嗚就算疊5層至少也教我寫成單行迴圈阿嗚嗚嗚嗚嗚一整個以為自己在寫八股文阿嗚嗚嗚嗚。゚ヽ(゚´Д`)ノ゚。
留言
隨便寫的遞迴給你參考,應該可以移除任何有問題的父層(即子項目包含任一非dict值) def filter_empty_leafs(d: dict)->bool: if type(d) != dict: # any bad condition you want for a given leaf return False for k in list(d.keys()): # make a copy to avoid dict changing over iteration good=filter_empty_dict(d[k]) if not good: del d[k] # delete bad one return len(d) > 0 filter_empty_leafs(your_root_dict)
B19(已編輯)