Bagaimana Mengeluarkan Nilai Kunci Khusus dalam Kamus dan Senarai Bersarang dengan Cekap?

Susan Sarandon
Lepaskan: 2024-11-15 07:35:02
asal
575 orang telah melayarinya

How to Efficiently Extract Values of a Specific Key in a Nested Dictionary and List?

Mencari Kejadian Kunci dalam Kamus dan Senarai Bersarang

Dalam struktur data bersarang yang kompleks, mengekstrak nilai kunci tertentu boleh menjadi tugas yang mencabar. Di sinilah mengenal pasti pendekatan terbaik adalah penting untuk mendapatkan semula yang cekap.

Pertimbangkan kamus yang mengandungi senarai bersarang dan kamus dengan kedalaman yang berbeza-beza. Sebagai contoh, kamus berikut mewakili hierarki yang kompleks:

{
    "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 nilai setiap kunci "id" dalam struktur ini, menghasilkan output:

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]
Salin selepas log masuk

Banyak pendekatan telah dicadangkan untuk tugas ini:

Penjana Rekursif Fungsi:

Menggunakan fungsi penjana rekursif seperti gen_dict_extract membolehkan traversal yang cekap melalui struktur bersarang. Ia menyemak kehadiran kunci sasaran dan berulang ulang melalui kamus dan senarai bersarang.

Iterators Item:

Memanfaatkan iteritem Python atau kaedah item untuk lelaran ke atas kamus boleh menyediakan cara yang mudah dan berkesan untuk mencari kekunci.

Depth-First Search:

Menggunakan algoritma carian depth-first, seseorang boleh turun secara rekursif melalui struktur bersarang, menangkap nilai kunci sasaran di setiap peringkat.

Laluan Pertanyaan:

Menyesuaikan konsep XPath untuk melintasi dokumen XML, fungsi tersuai seperti keseronokan atau Lubang kunci boleh dibangunkan untuk memudahkan pengekstrakan kunci yang disasarkan.

Penanda Aras:

Dengan membandingkan prestasi pelbagai fungsi dengan struktur data yang kompleks seperti kamus sampel, dapat ditentukan bahawa gen_dict_extract secara konsisten mempamerkan masa pelaksanaan terpantas. Sifat rekursifnya membolehkan traversal yang cekap dan pemeriksaan jenis pembolehubah, memastikan keserasian dengan jenis data yang berbeza semasa rekursi.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Nilai Kunci Khusus dalam Kamus dan Senarai 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