找出巢狀字典和清單中某個鍵的所有出現
這個問題提出了一個任意巢狀深度的字典,包含任意嵌套深度的字典,包含列表和字典。目標是提取結構中每個鍵“id”的值。
解決方案:
以下函數提供了各種方法來遍歷巢狀資料結構和擷取「id」值:
- gen_dict_extract(k,o): 此函式利用遞歸產生器來導覽字典和清單。它檢查“iteritems”函數來處理 Python 2 和 3 版本。
-
find_all_items(k,o): 與第一種方法類似,該函數使用遞歸和迭代來提取「id」值。
-
findkeys(k,o): 此函數利用「isinstance」方法來辨識結構中的列表和字典。它使用嵌套的“for”循環來迭代資料並定位“id”鍵。
-
get_recursively(k,o): 此函數結合了遞歸和推導式的原理來遍歷巢狀並蒐索目標鍵。
-
find(k,o):利用簡化的遞歸方法,該函數遍歷字典和列表以提取「id」值。
-
dict_extract(k,o): 與 find 函數類似,此函數使用稍微簡單的遞歸方法來定位結構中的「id」值。
效能比較:
針對複雜字典物件測試函數後,gen_dict_extract 函數表現最快,而 find_all_items 函數表現明顯不佳。其他函數表現出類似的效能,其中 find 和 keyHole 僅限於字串搜尋操作。
以上是如何找到巢狀字典和清單中某個鍵的所有出現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!