Python入門——定製容器

文章目錄


以下內容來自於網課學習筆記。

使用的環境:

  • Window10+64位操作系統
  • PyCharm+Python3.7


編寫一個不可改變的自定義列表,要求記錄列表中的每一個元素被訪問的次數。

思路:

  1. 定義一個類,此類的實例對象只能具有訪問列表元素的功能。
  2. 每取出一個列表元素,該列表元素的訪問此時+1——使用字典實現。
    • 在構造器中建立一個字典,列表元素作爲鍵,訪問次數作爲值。形成key-value結構。初始化每一元素的訪問次數爲0。
    • 取出一個列表元素時,此鍵對應的值+1
class CountList:
    def __init__(self,*args):
        # 列表推導式
        self.keys=[x for x in args]
        # 定義一個字典count
        self.count={}
        for i in self.keys:
            self.count[i]=0

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

    def __getitem__(self, key):
        self.count[key]+=1
        return self.count[key]


list=CountList(1,"f",3,"r",5,6)
print(list.keys)       #——————>[1, 'f', 3, 'r', 5, 6]
print(list.count)      #——————>{1: 0, 'f': 0, 3: 0, 'r': 0, 5: 0, 6: 0}

print(list[3])         #——————>1
print(list[3])         #——————>2
print(list[3])         #——————>3
print(list.count)      #——————>{1: 0, 'f': 0, 3: 3, 'r': 0, 5: 0, 6: 0}

print(list['f'])       #——————>1
print(list.count)      #——————>{1: 0, 'f': 1, 3: 3, 'r': 0, 5: 0, 6: 0}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章