本笔记原文来自FichC。
1)Python中的三大容器:列表List,元组Tuple,字符串String;
2)Python允许我们定制一个不可变的容器,如String,代码中就不能有修改容器的数据方法,如__setitem__(), __delitem__();
3)如果希望定制的容器支持reversed()内置函数,则容器中需定义__reversed__()方法,提供对内置函数reversed()的支持;
4)容器中,查询容器‘容量‘的方法是通过len()内置函数来实现,所以容器应定义__len__()方法;
5)容器支持读,写,删除,对应的方法分别为:__getitem__(), __setitem__(), __delitem__();
6)课上的实例:定制一个列表,统计列表中每个元素被访问的次数:
class CountList: def __init__(self,*args): self.values=[x for x in args] self.count={}.fromkeys(range(len(self.values)),0) def __len__(self): return len(self.values) def __getitem__(self,key): self.count[key] +=1 return self.values[key]
values中储存了列表的信息;count是使用字典的形式记录getitem被调用的次数,初始化为0;每调用一次就把对应的count【key】值加1;
测试结果:
扫描二维码关注公众号,回复:
1028922 查看本文章
![](/qrcode.jpg)