首頁  >  文章  >  後端開發  >  如何找到巢狀字典和清單中某個鍵的所有出現?

如何找到巢狀字典和清單中某個鍵的所有出現?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-11 15:42:03814瀏覽

How to Find All Occurrences of a Key in Nested Dictionaries and Lists?

找出巢狀字典和清單中某個鍵的所有出現

這個問題提出了一個任意巢狀深度的字典,包含任意嵌套深度的字典,包含列表和字典。目標是提取結構中每個鍵“id”的值。

解決方案:

以下函數提供了各種方法來遍歷巢狀資料結構和擷取「id」值:

  1. gen_dict_extract(k,o): 此函式利用遞歸產生器來導覽字典和清單。它檢查“iteritems”函數來處理 Python 2 和 3 版本。
  2. find_all_items(k,o): 與第一種方法類似,該函數使用遞歸和迭代來提取「id」值。
  3. findkeys(k,o): 此函數利用「isinstance」方法來辨識結構中的列表和字典。它使用嵌套的“for”循環來迭代資料並定位“id”鍵。
  4. get_recursively(k,o): 此函數結合了遞歸和推導式的原理來遍歷巢狀並蒐索目標鍵。
  5. find(k,o):利用簡化的遞歸方法,該函數遍歷字典和列表以提取「id」值。
  6. dict_extract(k,o): 與 find 函數類似,此函數使用稍微簡單的遞歸方法來定位結構中的「id」值。

效能比較:

針對複雜字典物件測試函數後,gen_dict_extract 函數表現最快,而 find_all_items 函數表現明顯不佳。其他函數表現出類似的效能,其中 find 和 keyHole 僅限於字串搜尋操作。

以上是如何找到巢狀字典和清單中某個鍵的所有出現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn