Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengeluarkan Semua Kejadian Kunci dalam Kamus dan Senarai Bersarang dengan Cekap?

Bagaimana Mengeluarkan Semua Kejadian Kunci dalam Kamus dan Senarai Bersarang dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2024-11-13 01:46:02875semak imbas

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

Cara mencari semua kejadian kunci dalam kamus dan senarai bersarang

Merentasi struktur data yang kompleks untuk mengekstrak nilai tertentu boleh menjadi cabaran biasa dalam pengaturcaraan. Artikel ini menangani masalah mencari semua kemunculan kunci tertentu dalam kamus dan struktur senarai bersarang dalam, menyediakan penyelesaian terperinci dan analisis prestasi.

Pertimbangkan kamus sampel yang terdiri daripada senarai dan kamus bersarang, serupa dengan:

{
    "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"
                }
            ]
        }
    ]
}

Matlamatnya adalah untuk mengekstrak semua nilai kunci "id" daripada struktur ini, menghasilkan senarai seperti:

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]

Untuk mencapai matlamat ini, pelbagai pendekatan telah dicadangkan , termasuk:

  1. gen_dict_extract: Fungsi rekursif yang menyemak kamus, senarai dan rentetan, menghasilkan nilai apabila kunci sepadan. (Terpantas dan disyorkan)
  2. find_all_items: Fungsi rekursif serupa yang berfungsi khusus untuk kamus.
  3. findkeys: Fungsi yang mencari kekunci secara rekursif dengan mengulangi kamus.
  4. get_recursively: Fungsi generik untuk mengekstrak nilai menggunakan rekursi.
  5. cari: Fungsi rekursif ringkas yang serupa dengan get_recursively .
  6. dict_extract: Fungsi yang merentasi struktur menggunakan gelung bersarang, menyemak kamus dan senarai.

Analisis prestasi mendedahkan bahawa gen_dict_extract fungsi mengatasi yang lain dari segi kelajuan, sambil memastikan kebolehpercayaan dan sokongan untuk pelbagai jenis data dalam struktur.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Semua Kejadian Kunci dalam Kamus dan Senarai Bersarang dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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