查找嵌套字典和列表中某个键的所有出现
这个问题提出了一个任意嵌套深度的字典,包含列表和字典。目标是提取结构中每个键“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中文网其他相关文章!