Bagaimana Mengeluarkan Semua Nilai yang Dihubungkan dengan Kunci Khusus dalam Struktur Data Bersarang dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-11-10 10:51:03
asal
682 orang telah melayarinya

How to Efficiently Extract All Values Associated with a Specific Key in Nested Data Structures?

Mencari Semua Kejadian Kunci dalam Struktur Data Bersarang

Objektif:
Mendapatkan semula semua nilai yang dikaitkan dengan kunci khusus dalam kamus bersarang dan senarai.

Pernyataan Masalah:
Pertimbangkan struktur data yang kompleks seperti kamus ini:

{
    "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"
                }
            ]
        }
    ]
}
Salin selepas log masuk

Matlamatnya adalah untuk mengekstrak semua nilai yang dikaitkan dengan "id " kunci.

Penyelesaian:
Untuk melintasi dan mengekstrak nilai "id" daripada struktur kompleks ini, pelbagai pendekatan boleh digunakan. Beberapa teknik yang biasa digunakan termasuk:

  • Fungsi Penjana Rekursif: Kaedah ini menggunakan fungsi penjana untuk melintasi struktur data secara rekursif, menyemak kekunci "id" dan menghasilkan nilai yang sepadan.
  • Depth-First Search (DFS) dengan Tindanan: Pendekatan DFS boleh dilaksanakan menggunakan tindanan untuk menolak elemen ke dalam tindanan, melawatinya dalam susunan yang pertama masuk terakhir dan mencari kunci "id" pada setiap langkah.
  • Depth-First Search (DFS) dengan Rekursi: Sama seperti menggunakan tindanan, rekursi boleh digunakan untuk traversal DFS, dengan fungsi memanggil dirinya secara rekursif untuk meneroka cabang struktur data dan mencari kunci "id".

Perbandingan Prestasi:
Untuk menentukan pendekatan yang paling cekap, teknik yang disebutkan telah diuji pada struktur data kompleks yang mengandungi 100,000 lelaran. Keputusan prestasi mendedahkan perkara berikut:

  • paling pantas dan paling selamat: gen_dict_extract
  • paling perlahan dan paling mudah ralat: find_all_item
  • prestasi jarak pertengahan: findkeys, get_recursively, find, dict_extract

Kesimpulan:
Untuk merentasi struktur data yang kompleks dan mengekstrak nilai yang dikaitkan dengan kunci tertentu, menggunakan fungsi penjana rekursif seperti gen_dict_extract menyediakan optimum kecekapan dan kebolehpercayaan.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Semua Nilai yang Dihubungkan dengan Kunci Khusus dalam Struktur Data Bersarang dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan