如何使用轉換後的鍵在 Python 中建立自訂字典?

Linda Hamilton
發布: 2024-11-18 09:43:02
原創
145 人瀏覽過

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

建立「完美」字典

在 Python 中,建立與字典行為相同的自訂類別可能是一項複雜的任務。以下是如何使用抽象基底類別 (ABC) 來實現它。

實作 MutableMapping ABC

collections.abc 模組為各種資料結構提供 ABC,包括 MutableMapping。透過實作 MutableMapping,我們可以建立一個與 dict 具有相同介面的物件。這是一個極簡實作:

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
登入後複製

自訂鍵轉換

透過重寫 _keytransform 方法,我們可以對鍵套用任意轉換。例如,強制使用小寫鍵:

class MyTransformedDict(TransformedDict):

    def _keytransform(self, key):
        return key.lower()
登入後複製

ABC 的好處

實施ABC 具有多個優點:

  • 確保遵守dict 介面。
  • 免費提供 __contains__、get() 和 setdefault() 等基本方法。
  • 簡化 pickling 和 unpickling。

綜上所述,實作 MutableMapping 和重寫 _keytransform 提供了一種簡潔有效的方法來建立具有自訂鍵處理的自訂字典,同時保持標準字典的功能。

以上是如何使用轉換後的鍵在 Python 中建立自訂字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板