文章目錄
以下內容來自於網課學習筆記。
使用的環境:
- Window10+64位操作系統
- PyCharm+Python3.7
編寫一個不可改變的自定義列表,要求記錄列表中的每一個元素被訪問的次數。
思路:
- 定義一個類,此類的實例對象只能具有訪問列表元素的功能。
- 每取出一個列表元素,該列表元素的訪問此時+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}