如何有效地提取嵌套字典和列表中某个键的所有出现?

Patricia Arquette
发布: 2024-11-13 01:46:02
原创
830 人浏览过

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

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

遍历复杂的数据结构以提取特定值可能是一个常见的挑战在编程中。本文解决了在深度嵌套的字典和列表结构中查找特定键的所有出现的问题,提供了详细的解决方案和性能分析。

考虑一个由嵌套列表和字典组成的示例字典,类似于:

{
    "id": "abcde",
    "key1": "blah",
    "key2": "blah blah",
    "nestedlist": [
        {
            "id": "qwerty",
            "nestednestedlist": [
                {
                    "id": "xyz",
                    "keyA": "blah blah blah"
                },
                {
                    "id": "fghi",
                    "keyZ": "blah blah blah"
                }
            ],
            "anothernestednestedlist": [
                {
                    "id": "asdf",
                    "keyQ": "blah blah"
                },
                {
                    "id": "yuiop",
                    "keyW": "blah"
                }
            ]
        }
    ]
}
登录后复制

目标是从此结构中提取“id”键的所有值,从而产生一个列表例如:

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]
登录后复制

为了实现此目的,建议了各种方法,包括:

  1. gen_dict_extract:检查字典、列表、和字符串,当键匹配时产生值。 (最快且推荐)
  2. find_all_items: 专门用于字典的类似递归函数。
  3. findkeys: 递归搜索键的函数通过迭代字典。
  4. get_recursively: 使用递归提取值的通用函数。
  5. find: 类似于 get_recursively 的简洁递归函数。
  6. dict_extract: A使用嵌套循环遍历结构、检查字典和列表的函数。

性能分析表明 gen_dict_extract 函数在速度方面优于其他函数,同时确保可靠性和支持适用于结构内的各种数据类型。

以上是如何有效地提取嵌套字典和列表中某个键的所有出现?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板