首页  >  文章  >  后端开发  >  如何查找嵌套字典和列表中某个键的所有出现?

如何查找嵌套字典和列表中某个键的所有出现?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-11 15:42:03779浏览

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