Bagaimanakah Saya Boleh Membuat Kamus Tersuai dalam Python dengan Kunci Berubah?

Linda Hamilton
Lepaskan: 2024-11-18 09:43:02
asal
144 orang telah melayarinya

How Can I Create a Custom Dictionary in Python with Transformed Keys?

Mencipta Dict "Sempurna"

Dalam Python, mencipta kelas tersuai yang berkelakuan serupa dengan kamus boleh menjadi tugas yang rumit. Begini cara untuk mencapainya dengan Kelas Asas Abstrak (ABC).

Melaksanakan MutableMapping ABC

Modul collections.abc menyediakan ABC untuk pelbagai struktur data, termasuk MutableMapping. Dengan melaksanakan MutableMapping, kita boleh mencipta objek dengan antara muka yang sama seperti dict. Berikut ialah pelaksanaan minimalis:

from collections.abc import MutableMapping

class TransformedDict(MutableMapping):

    def __init__(self, *args, **kwargs):
        self.store = dict()
        self.update(dict(*args, **kwargs))

    def __getitem__(self, key):
        return self.store[self._keytransform(key)]

    def __setitem__(self, key, value):
        self.store[self._keytransform(key)] = value

    def __delitem__(self, key):
        del self.store[self._keytransform(key)]

    def __iter__(self):
        return iter(self.store)

    def __len__(self):
        return len(self.store)

    def _keytransform(self, key):
        return key
Salin selepas log masuk

Menyesuaikan Transformasi Utama

Dengan mengatasi kaedah _keytransform, kami boleh menggunakan transformasi sewenang-wenangnya pada kunci. Sebagai contoh, untuk memaksa kekunci huruf kecil:

class MyTransformedDict(TransformedDict):

    def _keytransform(self, key):
        return key.lower()
Salin selepas log masuk

Faedah ABC

Melaksanakan ABC menawarkan beberapa kelebihan:

  • Memastikan pematuhan dengan antara muka dict.
  • Menyediakan kaedah penting seperti __contains__, get(), dan setdefault() secara percuma.
  • Memudahkan penjerukan dan nyahjeruk.

Ringkasnya, melaksanakan MutableMapping dan mengatasi _keytransform menyediakan cara yang ringkas dan berkesan untuk mencipta dict tersuai dengan pengendalian kunci yang disesuaikan sambil mengekalkan kefungsian dict standard.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Kamus Tersuai dalam Python dengan Kunci Berubah?. 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