ホームページ > バックエンド開発 > Python チュートリアル > ネストされた辞書とリストで出現するすべてのキーを効率的に抽出するにはどうすればよいですか?

ネストされた辞書とリストで出現するすべてのキーを効率的に抽出するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-13 01:46:02
オリジナル
903 人が閲覧しました

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」キーのすべての値を抽出し、リストを作成することです。 like:

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]
ログイン後にコピー

これを実現するために、次のようなさまざまなアプローチが提案されています。

  1. gen_dict_extract: 辞書、リスト、と文字列。キーが一致すると値が返されます。 (最速かつ推奨)
  2. find_all_items: 辞書に対して特に機能する同様の再帰関数。
  3. findkeys: キーを再帰的に検索する関数を繰り返すことでDictionary.
  4. get_recursively: 再帰を使用して値を抽出するための汎用関数。
  5. find: get_recursively に似た簡潔な再帰関数。
  6. dict_extract: 関数ネストされたループを使用して構造を横断し、辞書とリストをチェックします。

パフォーマンス分析により、gen_dict_extract 関数が速度の点で他の関数よりも優れており、信頼性とサポートを確保していることがわかります。構造内のさまざまなデータ型。

以上がネストされた辞書とリストで出現するすべてのキーを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート